我正在尝试编写一个函数,在当前目录及其子文件夹中查找特定文件的第一个实例,并将相对路径作为字符串返回。
def findFirstMatch(targetFile):
try:
fileMatched = []
for root, dirnames, filenames in os.walk('.'):
for filename in fnmatch.filter(filenames, targetFile):
fileMatched.append(os.path.join(root, filename))
if len(fileMatched) != 0:
fileMatched = str(fileMatched)
return fileMatched
if len(fileMatched) == 0:
raise NotFoundError, 'File could not be found.'
except NotFoundError, error:
print error
当我这样调用函数时:
csvPath = findFirstMatch('bounding_box_limits.csv')
在Python控制台中运行时收到此错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "MassSpringDamperCAD.py", line 121, in <module>
main()
File "MassSpringDamperCAD.py", line 90, in main
with open(csvPath, 'r') as csvFile:
IOError: [Errno 2] No such file or directory: "['.\\\\common\\\\bounding_box_limits.csv']"
它找到了该文件,但所有这些额外的反斜杠是如何在文件路径中结束的?
注意:我使用的是Windows 7和Python 2.7.3。
答案 0 :(得分:0)
这些反斜杠是他们反斜杠这一事实的副作用。 Gobbledygook: - )
在字符串中,反斜杠表示反斜杠通常在CLI中以反斜杠开头,否则在特殊字符同义词之前,例如换行符为\n
,制表符为\t
。根据我的经验,这些反斜杠的数量不会导致问题。您始终可以尝试按os.path.normpath()
标准化字符串中的路径。
此问题肯定是 Windows 特定。