Python read: file not found when using absolute path
本问题已经有最佳答案,请猛点这里访问。
我有一个可以在本地读取文件的python程序,很好:
在我拥有这个程序的目录中,有一个名为path_list的文件(它是一个文件路径列表),我可以这样打开和访问它:
1 2 | test_explicit = open('path_list').read() print 'Reading local file gives: ' + test_explicit |
然后程序将遍历这些路径,并在每个路径上调用以下函数,根据在上面的版本目录中找到的内容执行操作。不幸的是,在这里,当我使用绝对路径而不是相对路径时,这些相同的打开/读取操作会导致"没有此类文件或目录"错误。(但当我打印出它要去的地方并在那里时,我看到了我期望的内容)。
以下是我的代码的相关部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | def getCommand(path): # Grab that trailing /version, strip the v, convert to int split_path = path.split("/") version = split_path.pop() version_num = int (version[1:] ) # Increment that number, and remake path with a fresh /v(x+1) suffix version_num += 1 new_suffix = '/v' + str(version_num) higher_file_path = '/'.join(split_path) higher_file_path += new_suffix finished_filename = 'finished.txt' finished_filepath = os.path.join(higher_file_path, finished_filename) result = open(finished_filepath).read() print 'Result is: ' + result [more code] |
当我运行它时,我在与
1 | IOError: [Errno 2] No such file or directory: '~/scripts/test/ABC/v4/finished.txt' |
但是当我在那里的时候,我确实看到了文件。
需要使用以下函数展开"~"
1 | os.path.expanduser(path) |
更新:在您的情况下,它可能如下所示:
1 | result = open(os.path.expanduser(finished_filepath)).read() |
如前所述,您在文件路径中使用了shell特殊字符
1 | path = os.path.expanduser(os.path.expandvars(path)) |
在python中,