考虑下面的程序,它的目的是打开sys.argv[1] + "string"
引用的一些文件。在
import sys
def searchAndReplacePath(path):
filesToSearch = [path + "\main\file1.txt",
path + "\main\folder\file2.txt"]
for files in filesToSearch:
with open(files, 'r') as inFile:
filedata = inFile.readlines()
if __name__ == "__main__":
# sys.argv[1] -- Specify which path should be used
searchAndReplacePath(sys.argv[1])
在执行(Python 3.6,Windows 7)时,我收到一个错误:
^{pr2}$Python在我的反斜杠上加反斜杠!如果我迭代这个列表并print()
列出的每一项,我会得到“单个反斜杠”,所以我真的不知道该怎么做。我读了很多关于raw strings
和如何使用:r"path\to\file"
,但是自从我从系统argv[]我现在真的不知道如何达到同样的效果。在
如何打开Windows上Python中通过sys.argv[]
提供的路径指定的文件?在
在下面的交互式会话中可以看到此问题:
如您所见,当解释器打印字符串的
repr
时,它引用反斜杠来反映Python源代码。'\f'
是单个字符,而不是两个。当打印文件名时,解释器使用它的repr()
。在另外,请注意这一区别:
^{pr2}$您将看到
repr()
在值周围加了引号,显示它与在Python程序中表示的一样。在尝试使用python的
os
模块:import os files_to_search = [os.path.join(path, 'main\file1.txt') ... ]
相关问题 更多 >
编程相关推荐