Python 文件写入问题
最近,我在做一个使用asksaveasfile函数的项目。在使用此命令并将/“s”更改为“s”之后,我一直收到一个错误,它告诉我,当使用replace“/”时,“\\”因为\是您需要的转义字符2,所以程序使用的是\\而不是\ 下面是我创建的一个示例,其中我得到了相同的错误:Python 文件写入问题,python,file,tkinter,Python,File,Tkinter,最近,我在做一个使用asksaveasfile函数的项目。在使用此命令并将/“s”更改为“s”之后,我一直收到一个错误,它告诉我,当使用replace“/”时,“\\”因为\是您需要的转义字符2,所以程序使用的是\\而不是\ 下面是我创建的一个示例,其中我得到了相同的错误: import tkinter from tkinter.filedialog import asksaveasfile files = [('Python Files', '*.py')] get_file = asksa
import tkinter
from tkinter.filedialog import asksaveasfile
files = [('Python Files', '*.py')]
get_file = asksaveasfile(filetypes = files, defaultextension = files)
get_file = str(get_file).replace('/', '\\')
file = open(str(get_file), "w")
mainloop()
下面是我得到的错误:
Traceback (most recent call last):
File "C:/Users/aries/Documents/saveas.py", line 30, in <module>
file = open(str(get_file), "w")
OSError: [Errno 22] Invalid argument: "<_io.TextIOWrapper
name='C:\\Users\\MY_NAME\\Documents\\MY_PROJECT\\test23.py' mode='w' encoding='cp1252'>"
感谢所有帮助。您遇到的问题与反斜杠无关。asksaveasfile返回打开的文件句柄,而不是文件名。如果需要文件名,请调用asksaveasfilename-但为什么?在Windows上,Python将自动处理路径中的/分隔符,因此您甚至不需要此代码。您不必将反斜杠更改为正斜杠。Windows支持反斜杠已经很长时间了。我最初支持+1,但由于他在10分钟内回答了,我不得不等待,然后才接受。在这样评论之前请多加注意。@AriesNinja with askopenfile。。我相信你可以摆脱开。。。同样,它会打开您使用filedialogKind选择的文件,但对我来说,它会以追加模式打开文件。