我正在制作一个程序,需要两个文件比较它们,然后找到相似的百分比,现在我很难拿到文件名然后通过它打开功能读取它然后通过数据生成到另一个功能,它显示我的错误
IOError: [Errno 22] invalid mode ('r') or filename: ''
我的代码是
Copied_File = ''
def Click_Copy():
global Copied_File
Copied_File = tkFileDialog.askopenfilename(initialdir='C:/Users/%s' % user)
directory = os.path.split(Copied_File)[0]
return Copied_File
with open((Copied_File), 'r')as file_1:
file1_data = file_1.read()
View_copied_File.insert(0.0, file1_data)
btn_Copy = ttk.Button(text="Open Copied File",command=Click_Copy)
btn_Copy.place(x =10, y = 30, width=120, height=34)
View_copied_File= ScrolledText(Window_1, width=50, height=40,state = "normal")
View_copied_File.place(x =10, y = 70)
答案 0 :(得分:0)
正如@Stefans对您所说,当您尝试打开文件Copied_File
时出现问题,因为当您运行with open((Copied_File), 'r')as file_1:
时,您有Copied_File =
。
这意味着:
with open((Copied_File), 'r')as file_1:
等于with open('', 'r')as file_1:
您定义了Click_Copy()
方法,但您从未执行过它。因此,您需要在with
语句之前调用该方法。
要解决您的问题,您可以直接调用该方法:
...
with open(Click_Copy(), 'r') as file_1:
...