Python中的CSV写入错误
我有以下代码:Python中的CSV写入错误,python,csv,tkinter,Python,Csv,Tkinter,我有以下代码: def saveFile(self, master = None): f = asksaveasfile(mode='w',defaultextension='.csv') if f is None: # asksaveasfile returns `None` if dialog closed with "cancel". return f.close() cords2save = globalCords # coordinate
def saveFile(self, master = None):
f = asksaveasfile(mode='w',defaultextension='.csv')
if f is None: # asksaveasfile returns `None` if dialog closed with "cancel".
return
f.close()
cords2save = globalCords # coordinates from another csv file
csvOpen = open(f, 'w')
w = csv.writer(fp)
w.writerow(cords2save)
当我运行此命令时,我得到:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Jem\AppData\Local\Programs\Python\Python35- 32\lib\tkinter\__init__.py", line 1550, in __call__
return self.func(*args)
File "C:\Users\Jem\Documents\bbk\1FINisd\LineSimplification.py", line 143, in saveFile
csvOpen = open(f, 'w')
TypeError: invalid file: <_io.TextIOWrapper name='C:/Users/Jem/Documents/bbk/1FINisd/ard.csv' mode='w' encoding='cp1252'>
Tkinter回调中出现异常
回溯(最近一次呼叫最后一次):
文件“C:\Users\Jem\AppData\Local\Programs\Python\Python35-32\lib\tkinter\\ uuuuuu init\uuuuuu.py”,第1550行,在调用中__
返回self.func(*args)
保存文件中第143行的文件“C:\Users\Jem\Documents\bbk\1FINisd\linesimplify.py”
csvOpen=打开(f,'w')
TypeError:无效文件:
我真的被其他线程解决方案卡住了——我做错了什么
谢谢
asksaveasfile
返回文件对象。然后尝试对该文件对象调用open
。但是open
不需要文件,它需要文件名
尝试改用asksaveasfilename
def saveFile(self, master = None):
filename = asksaveasfilename(mode='w',defaultextension='.csv')
if not filename:
return
with open(filename, 'w') as file:
w = csv.writer(file)
w.writerow(globalCords)
或者,继续使用asksaveasfile
,但不要关闭文件,也不要尝试打开新文件
def saveFile(self, master = None):
f = asksaveasfile(mode='w',defaultextension='.csv')
if not f:
return
w = csv.writer(f)
w.writerow(globalCords)
f.close()
asksaveasfile
返回文件对象。然后尝试对该文件对象调用open
。但是open
不需要文件,它需要文件名
尝试改用asksaveasfilename
def saveFile(self, master = None):
filename = asksaveasfilename(mode='w',defaultextension='.csv')
if not filename:
return
with open(filename, 'w') as file:
w = csv.writer(file)
w.writerow(globalCords)
或者,继续使用asksaveasfile
,但不要关闭文件,也不要尝试打开新文件
def saveFile(self, master = None):
f = asksaveasfile(mode='w',defaultextension='.csv')
if not f:
return
w = csv.writer(f)
w.writerow(globalCords)
f.close()
您在最后一行中要传递到的
fp
是什么?在最后一行中要传递到的fp
是什么?