如何使用与Python 3中的Linux,Mac和Windows交叉兼容的文件路径打开和写入文件?
我创建了一个函数,打开一个包含以下行“Hello World”的input_file。然后函数打开output_file并将该行写入output_file。输出文件现在应该有一行“Hello World。”
但是,在尝试使用绝对文件路径时,我收到了UnicodeError。
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
我尝试使用os.chdir,os.path,文件路径的正斜杠,文件路径的双斜线和原始字符串,但这些都没有用。
在查看问题Why do I get a SyntaxError for a Unicode escape in my file path?的先前答案后,使用os.chdir给出了错误:
NotADirectoryError: [WinError 267] The directory name is invalid
此外,这些答案仅适用于Windows机器,而不适用于Linux或Mac机器。
我该怎么做才能确保我的功能可以打开任何文件并写入Linux,Mac和Windows机器上的任何文件?
def example_function(input_file_path, output_file_path)
with open(input_file_path) as input_file:
with open(output_file_path) as output_file:
for line in input_file:
output.write(line)
example_function("C:\Users\Name\InputFolder\TextFolder\input.txt","C:\Users\Name\OutputFolder\DataFolder\output.txt")
答案 0 :(得分:2)
始终使用正斜杠,这样您就不会意外地引入无效的转义序列,例如" \ Users"。
C:/Users/Name/InputFolder/TextFolder/input.txt