【问题标题】:how can I add r' into variable in python?如何将 r' 添加到 python 中的变量中?
【发布时间】:2016-11-06 14:33:53
【问题描述】:

我的程序中有两个函数,一个将获取用户的路径,另一个将打开该路径中的文件,此函数将打开文件

def pdfparser(filename):
    fp = file(filename, 'rb')

当我从另一个函数传递路径时,它返回:

IOError: [Errno 22] invalid mode ('rb') or filename:'C:\\Users\\user\\PycharmProjects\\advisor\\website\\a.PDF

我知道我必须在路径或 (r'path) 中添加双重飞溅 但我的问题是如何将 r' 或双斜杠添加到变量中,因为路径将存储在变量中并传递给另一个函数。我需要类似 s=r'path

请帮忙

【问题讨论】:

  • r 前缀仅用于常量。一旦字符串具有正确的值,就无需再次指定 r 前缀。您确定该文件存在于您的系统上吗?尝试在打开之前打印filename,然后将其复制/粘贴到 Windows 资源管理器中以查看 Windows 是否找到它。
  • 我不确定我是否理解这个问题(IOError 真的完整吗?stacktrace 怎么样),但是除了 os.path.join() 更酷之外,还有什么不适用于filename = r'C:\Users\user\PycharmProjects\advisor\website\a.PDF。 ..?
  • 您的错误表明文件名已正确指定;所有的反斜杠都是正确的。您遇到的问题不是可以通过在某处添加前缀r 来解决的。注意r'...'只是一个语法来指定一个字符串值,它不是一个单独的对象类型。它只是告诉 解析器 不要解释 \.. 转义序列。因为这是一个语法概念,所以没有动态对应项
  • @Jean-François Fabre 它存在我已经尝试过了,但是当我通过 'C:\Users\user\PycharmProjects\advisor\website\a.PDF 它不起作用但是当我添加双斜杠时或 r' 有效,但我的路径是在变量中排序的,所以我如何添加 r' 或双倍空格
  • @Dilettant 我无法将 r' 添加到路径中,因为我的路径在另一个函数的变量中

标签: python path


【解决方案1】:

这样做:

在调用此函数之前,将路径值存储在任何变量中,例如“目录”,在这里你在文件路径中添加前缀 r'。调用此 pdfparser(filename) 函数时,只需将“目录”作为参数传递。有效!

>directory= r"C:\Users\SomeUser\Pictures\Disk"  
>pdfparser(directory)

【讨论】:

  • 乍一看,我担心这行不通。但经过测试,它确实有效。
猜你喜欢
  • 1970-01-01
  • 2017-10-01
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 2021-02-26
相关资源
最近更新 更多