所以我有一个需要打印到不同目录中的文件的脚本。我给出了绝对的路径而python不喜欢它。
这是文件所在的位置:
C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt
(我知道,很长的路径,但QT绘图仪使文件名很长)
我打字:
textfile = open('C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt', 'w')
我收到了这个错误:
IOError: [Errno 22] invalid mode ('w') or filename:
我读过我可以使用相对路径,但我不确定如何给它一个包含这么多目录的相对路径。
谢谢!
答案 0 :(得分:3)
问题是python将路径中的反斜杠解释为转义序列:
>>> 'C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt'
'C:\\Users\\Owner\\Documents\\Senior_design\\QT_Library\x08uild-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt'
请注意,\b
和\n
都会转换为其他内容。改为使用“原始”字符串:
>>> r'C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt'
'C:\\Users\\Owner\\Documents\\Senior_design\\QT_Library\\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\\numbers.txt'
答案 1 :(得分:1)
我相信这个答案here可能会有所帮助。
基本上,你的反斜杠会导致问题。