当我尝试解析子目录中的xml文件时,我得到了$ Username for 'https://github.com': fatal: could not read Username
for 'https://github.com': Input/output error
。当我将文件放在脚本旁边时,它可以很好地解析。但是为什么呢?
FileNotFoundError
答案 0 :(得分:2)
尝试通过打印path_to_file的值来尝试最简单的调试方式。
os.path.join()
被使用,因此您不必为其构造的路径指定(特定于操作系统的)路径分隔符,这意味着您无需(不应)指定它们。 / p>
您在test
部分上过度指定了路径分隔符-更改:
path_to_file = os.path.join(script_path, '/test', 'file.xml')
到
path_to_file = os.path.join(script_path, 'test', 'file.xml')
答案 1 :(得分:1)
尝试写'/test'
时不要使用反斜杠。
path_to_file = os.path.join(script_path, 'test', 'file.xml')
答案 2 :(得分:0)
我自己发布答案,因为尽管答案可以解决问题,但它们并未给出代码有效而我的代码无效的正确原因。
我的代码的重要问题是,行
path_to_file = os.path.join(script_path, '/test', 'file.xml')
# Expected value of path_to_file:
# /path/to/script/test/file.xml
# Output of print(path_to_file):
# /test/file.xml
包含绝对路径/test
,而不是相对路径 ./test
,或者如前所述,是更好的方法test
。
结果是对于/test
,结果路径将不包含script_path
的内容。
在您进入一个目录但没有涵盖类似情况的情况下,以前的答案可能会有所帮助
path_to_file = os.path.join(script_path, 'test/subdir', 'file.xml')
在/
有用的地方。我认为可以信任os.path.join()
来照顾那些平台特定的目录。如果您不同意我的话,请告诉我。