我正在尝试编写一个脚本,允许用户创建一个包含他们想要的任何名称的文件夹,然后创建一个包含他们想要的任何名称的文件。一旦他们这样做,程序会询问他们3个名字并将它们写入文件。然后我想让用户输入1到3之间的数字并显示他们想要的行数。我正在尝试阅读文件中的内容时发现错误
TypeError: invalid file: <_io.TextIOWrapper name='C:blah blah ' mode='a' encoding='cp1252'>
代码如下:
def SaveDir():
global FileSave
FileSave = filedialog.asksaveasfile(mode='a', defaultextension=".txt")
if FileSave is None:
return
print(FileSave)
SaveDir2()
def SaveDir2():
FinalFile = open(FileSave)
FinalFile.write(PRINTCONV)
FinalFile.close()
答案 0 :(得分:2)
函数tkFileDialog.asksaveasfile
返回实际的打开文件,这就是你得到TypeEror
的原因,因为它不是可以打开的有效文件名。请考虑使用tkFileDialog.asksaveasfilename
。或者只需简单地调用FileSave.write
,因为 是打开的文件对象。
以前曾提出过类似的问题: