如何将PySimpleGUI文件浏览选中的路径应用到其他Python脚本中
现有代码问题说明
你当前的文件选择代码逻辑是选中文件后需要点击Submit按钮才会触发路径写入操作,如果点击后没有效果,大概率是临时文件的相对路径有问题,你可以把写入路径换成绝对路径,比如open(r'C:\你的项目路径\hedef_dosya.txt', 'w') 格式,避免工作目录不匹配导致的文件写入失败。
方案1:复用现有写入临时文件的逻辑(改动最小)
你现有的文件选择代码已经把选中的路径写入了指定的txt文件,直接在另一个.py文件里读取这个路径替换固定路径即可,修改后的import_data代码如下:
import pandas as pd def import_data(): # 读取存储选中路径的临时文件,注意替换成你实际的txt文件路径 with open('../pythonProject3/hedef_dosya.txt', 'r', encoding='utf-8') as f: selected_file_path = f.read().strip() # 替换原来的固定路径 data = pd.read_csv(selected_file_path, sep=';') return data
注意:要保证运行import_data之前,你已经先运行了文件选择脚本、选中文件并点击了Submit,否则临时文件不存在或者内容为空会报错。
方案2:整合两个逻辑(不用临时文件,更稳定)
如果两个功能是在同一个项目里使用,建议直接把文件选择和数据导入整合到一起,避免临时文件读写带来的各种异常问题,完整代码参考:
import PySimpleGUI as sg import pandas as pd def select_file(): sg.theme("DarkTeal2") # 可通过file_types参数限制只能选csv文件,避免选错 layout = [ [sg.T("")], [sg.Text("Choose a file: "), sg.Input(), sg.FileBrowse(key="-IN-", file_types=(("CSV Files", "*.csv"),))], [sg.Button("Submit")] ] window = sg.Window('My File Browser', layout, size=(600, 150)) selected_path = "" while True: event, values = window.read() if event == sg.WIN_CLOSED or event == "Exit": break elif event == "Submit": selected_path = values["-IN-"].strip() break window.close() return selected_path def import_data(file_path): data = pd.read_csv(file_path, sep=';') return data # 调用示例 if __name__ == "__main__": user_selected_file = select_file() if user_selected_file: # 确认用户选中了文件才执行导入 df = import_data(user_selected_file) # 后续处理数据的逻辑写在这里 print("数据导入成功,共{}行".format(len(df))) else: print("未选中任何文件")
内容的提问来源于stack exchange,提问作者Kaan Kayas
相关产品推荐
相关产品推荐

