You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:57:04