我无法使用python 2.7.3中的以下代码打开excel文件来写入数据。 这段代码有什么问题?
def openfile():
import os
f=open('ab.xls', 'w')
return
import Tkinter
from Tkinter import *
root=Tk()
root.geometry('100x100+100+100')
button1=Button(root, text='Open file', command=openfile)
button1.pack()
root.mainloop()
谢谢
答案 0 :(得分:2)
将import os
放在函数中意味着在运行函数之前它不会被导入...可能不是你想要的。
您打开文件,但永远不会返回它的句柄。尝试将return
替换为return f
如果您使用import xlwt
,则无论如何都不需要此项;它负责写入文件。请参阅我之前在How to export user inputs (from python) to excel worksheet?
修改强>
...'ab.xls'被打开,你返回了一个句柄,然后什么都不做。你到底想要做什么呢?
尝试
import Tkinter as tk
def do_something_with_file():
with open('ab.xls', 'w') as f:
print("The file is open")
# --> now DO SOMETHING with it <--
root = tk.Tk()
root.geometry('100x100+100+100')
button1 = tk.Button(root, text='Open file', command=do_something_with_file)
button1.pack()
root.mainloop()
答案 1 :(得分:2)
你似乎对这种背景下的开放手段感到困惑。 open()
是一个在Python中返回文件句柄的函数,因此您可以将数据读入应用程序。
如果要使用系统上的默认程序打开该文件类型的文件,请查看os.startfile()。
答案 2 :(得分:1)
您的“f”变量是一个文件对象,它是一个局部变量(一旦“openfile”函数结束就被销毁)。您可以将f声明为全局,或让openfile函数返回文件对象。
答案 3 :(得分:-1)
我在这段代码中看不到任何明显的致命错误。
在这里走出困境,特别是如果你在Windows上运行它,文件是否仍然可以在其他地方打开,比如excel或通过你自己的代码?如果文件已在其他地方开放,则无法打开文件进行书写。