Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 文件写入问题_Python_File_Tkinter - Fatal编程技术网

Python 文件写入问题

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

最近,我在做一个使用asksaveasfile函数的项目。在使用此命令并将/“s”更改为“s”之后,我一直收到一个错误,它告诉我,当使用replace“/”时,“\\”因为\是您需要的转义字符2,所以程序使用的是\\而不是\

下面是我创建的一个示例,其中我得到了相同的错误:

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选择的文件,但对我来说,它会以追加模式打开文件。