#python
Вопрос:
Я могу просматривать папки и файлы на python, но когда я выбрал файл, никаких изменений не произошло. Я просто хочу вставить путь к папке или файлу в свой код. Например,
import PySimpleGUI as sg
sg.theme("DarkTeal2")
layout = [[sg.T("")], [sg.Text("Choose a file: "), sg.Input(), sg.FileBrowse(key="-IN-")], [sg.Button("Submit")]]
###Building Window
window = sg.Window('My File Browser', layout, size=(600, 150))
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == "Exit":
break
elif event == "Submit":
import sys
sys.stdout = open('../pythonProject3/hedef_dosya.txt', 'w')
print(values["-IN-"])
sys.stdout.close()
Я хочу использовать выделение в этом другом файле .py
def import_data():
data = pd.read_csv('x.csv', sep=';')
Комментарии:
1. Содержимое
sg.Input
иsg.FileBrowse
изменено после выбора файла и ОК, файл txt изменен после события «Отправить».2. Я не могу объяснить свой вопрос, текстовый файл изменяется, но я хочу использовать данные(путь) в текстовом файле, который выбран в моем другом коде python, как я могу объединить(?) их.
3. Поэтому, когда я выберу файл, он будет записан в часть моего кода «x.csv».
Ответ №1:
Нет необходимости выходить из окна графического интерфейса и сохранять результаты в CSV-файл, а затем в другой скрипт.
Используя в io.StringIO
качестве буфера, затем преобразуйте его DataFrame
непосредственно в строку from.
from io import StringIO
import pandas as pd
import PySimpleGUI as sg
sg.theme("DarkTeal2")
layout = [
[sg.T("")],
[sg.Text("Choose a file: "),
sg.Input(), sg.FilesBrowse(key="-IN-")],
[sg.Button("Submit")],
]
window = sg.Window('My File Browser', layout, size=(600, 150))
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == "Exit":
break
elif event == "Submit":
""" Files in Horizontal """
buffer = StringIO(values["-IN-"])
df = pd.read_csv(buffer, sep=";", header=None)
""" Files in Vertical
string = 'n'.join(values['-IN-'].split(";"))
buffer = StringIO(string)
df = pd.read_csv(buffer, header=None)
"""
print(df)
window.close()
Горизонтальный Выход
0 ... 13
0 C:/Software/Python/python.exe ... C:/Software/Python/pythonw_d.pdb
[1 rows x 14 columns]
Вертикальный Выход
0
0 C:/Software/Python/python.exe
1 C:/Software/Python/python.pdb
2 C:/Software/Python/python_d.exe
3 C:/Software/Python/python_d.pdb
4 C:/Software/Python/python3.dll
5 C:/Software/Python/python3_d.dll
6 C:/Software/Python/python39.dll
7 C:/Software/Python/python39.pdb
8 C:/Software/Python/python39_d.dll
9 C:/Software/Python/python39_d.pdb
10 C:/Software/Python/pythonw.exe
11 C:/Software/Python/pythonw.pdb
12 C:/Software/Python/pythonw_d.exe
13 C:/Software/Python/pythonw_d.pdb
Комментарии:
1. когда я редактирую свой код с вашей помощью, я ничего не могу прочитать (код выхода 0), также кнопка отправки бесполезна
2. Пустые Столбцы фрейма данных: [C:/Users/90543/PycharmProjects/demand/x.csv] Индекс: [] Процесс завершен с кодом выхода 0 Я просто хочу прочитать этот файл x.csv, но не могу дотянуться
3. Еще одна опция
header=None
добавлена, еслиpd.read_csv
здесь нет заголовка, обновите код.4. же не могу прочитать данные, консоль выдает мне просмотренный путь 🙁
5. Ваш код или мой код ? Добавьте еще одно утверждение
print(df)
, чтобы показать результат послеread_csv
.