如何使用与Python 3中的Linux,Mac和Windows交叉兼容的文件路径打开和写入文件?

时间:2018-02-09 16:27:51

标签: python windows unicode filepath

如何使用与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")

1 个答案:

答案 0 :(得分:2)

始终使用正斜杠,这样您就不会意外地引入无效的转义序列,例如" \ Users"。

C:/Users/Name/InputFolder/TextFolder/input.txt