Просмотр файлов Python

#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 .