하나의 코드를 사용하여 여러 파일을 여는 Tkinter

ZaweeeZ

그래서 3 개의 CSV 파일을 열고 json으로 변환하고 '정리'한 다음 하나의 파일로 병합 할 수있는 프로그램을 설계했습니다.

내가 디자인 한 방식은 디스플레이에 각 파일을로드하기위한 3 개의 버튼이 있지만 사용자가 다른 변수에 할당 된 여러 파일을로드 할 수있는 1 개의 버튼 만 표시하는 더 나은 디자인이 있는지 궁금합니다. , 이러한 csv 파일의 coloum 제목에 따라 다릅니다.

내가 가진 문제는 하나의 파일을로드 할 때 이전에로드 된 파일을 재정의한다는 것입니다.

참고로 csv 파일은 1/3 형식 만 가능하므로 열 제목이 알려져 있습니다.

내 코드의 짧은 부분에서 볼 수 있듯이 두 개의 개별 파일에 대해 두 개의 다른로드 파일 버튼을 만들었지 만 다른 파일을 다른 변수로 지원하는 버튼 하나만 가질 수있는 방법이 있습니까?

import tkinter as tk
from tkinter import *
from tkinter import filedialog
from tkinter import messagebox
import pandas as pd
import json
import csv
import sys
import sqlite3

#
def loadInspection():
    global inspectionFile
    global label_inspectionFile
    
    loadingCSV = filedialog.askopenfilename()
    inspectionFile = pd.read_csv(loadingCSV)

#Making buttons for load and translate and clean
loadButton = Button(window1, text="Load Inspections File", command=loadInspection)
loadButton.grid(row=0, column=1)

#loading first file called inspections
def inspectionClean(): 
    global inspectionFile
    
    inspectionFile = inspectionFile
    #Check and remove any duplicates in the Inspection Data
    inspectionFile = inspectionFile[inspectionFile.duplicated() == False]
    
cleanInsButton = Button(window1, text="Clean", command=inspectionClean)
cleanInsButton.grid(row=0, column=3)

#loading second file called inventroy
def loadInventroy():
    global inventroyFile
    
    loadingCSV = filedialog.askopenfilename()
    inventroyFile = pd.read_csv(loadingCSV)


#Making buttons for load and translate and clean
loadButton = Button(window1, text="Load Inventroy File", command=loadInventroy)
loadButton.grid(row=3, column=1)

def inventroyClean(): 
    global inventroyFile
    
    inventroyFile = inventroyFile
    #Check and remove any duplicates in the Inspection Data
    inventroyFile = inventroyFile[inventroyFile.duplicated() == False]
    

cleanInvButton = Button(window1, text="Clean", command=inventroyClean)
cleanInvButton.grid(row=3, column=3)
Rolv Apneseth

내 생각 엔 이것이 전역 변수에 문제가 될 수 있습니다. 일반적으로 인스턴스 / 클래스 변수를 대신 사용하는 것이 좋으며 전역 변수를 사용하는 것은 일반적으로 권장되지 않습니다.

로드 기능은 대신 다음과 같이 구성 될 수 있습니다.

class MyCSVLoader:
    def __init__(self):
        self.inventory = None
        self.inspection = None

    def loadCSV(self):
        loadingCSV = filedialog.askopenfilename()

        return pd.read_csv(loadingCSV)

    def loadAll(self):
        self.inspection = self.loadCSV()
        self.inventory = self.loadCSV()

그러나 테스트 할 CSV 파일이 없기 때문에 이것이 작동하는지 알려주십시오.

그런 다음 다음과 같이 하나의 버튼으로 구현할 수 있습니다.

csvLoader = MyCSVLoader()

loadButton = tk.Button(window1, text="Load All Files", command=csvLoader.loadAll)
loadButton.grid(row=0, column=1)

2 개의 파일을 선택할 수 있도록 1 개의 창이 차례로 팝업됩니다. 선택한 파일은 다음을 통해 액세스 할 수 있습니다 csvLoader.inventorycsvLoader.inspection.

클린 함수도 제대로 작동하려면이 클래스로 이동해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

sftp를 사용하여 여러 파일을 넣는 방법

분류에서Dev

이 코드를 사용하여 여러 첨부 파일이있는 이메일을 보내는 방법

분류에서Dev

여러 csv 파일을 가져오고 Pandas를 사용하여 하나의 DataFrame으로 연결하는 방법

분류에서Dev

CMD 또는 Batch를 사용하여 여러 파일을 하위 폴더에서 하나의 폴더로 이동

분류에서Dev

CMD 또는 Batch를 사용하여 여러 파일을 하위 폴더에서 하나의 폴더로 이동

분류에서Dev

PHP를 사용하여 PDF 파일을 업로드하는 방법의 코드

분류에서Dev

Python을 사용하여 여러 개의 Excel 파일을 여러 시트가있는 하나의 파일로 동적으로 만드는 방법

분류에서Dev

bootstrap-vue를 사용하여 여러 파일을 업로드하는 방법

분류에서Dev

단일 코드 파이프 라인을 사용하여 여러 Lambda 함수를 배포하는 방법

분류에서Dev

gsutil cp는 일괄 업로드를 사용하여 한 번에 여러 파일을 업로드하나요?

분류에서Dev

인수가있는 JQ를 사용하여 여러 json 파일을 하나의 객체로 병합

분류에서Dev

하나의 ttf 파일을 사용하는 여러 BitmapFonts

분류에서Dev

하나의 파일을 사용하여 여러 명령 실행

분류에서Dev

mysql 및 php를 사용하여 여러 csv 파일을 만드는 동안

분류에서Dev

jq를 사용하여 여러 파일의 JSON 레코드를 통합하는 방법

분류에서Dev

json을 사용하여 여러 레코드 세트를 반환하는 방법

분류에서Dev

Perl에서 YAML을 사용하여 여러 파일을로드하는 방법

분류에서Dev

찾기를 사용하여 여러 파일의 이름을 바꾸는 방법

분류에서Dev

PHP를 사용하여 여러 파일 이름을 복사하는 방법?

분류에서Dev

XSLT를 사용하여 하나의 XML 파일 섹션을 여러 HTML 파일로 분할

분류에서Dev

Pandas에서 특정 행 수를 사용하여 하나의 Excel 파일을 여러 파일로 분할

분류에서Dev

.NET Core에서 하나의 연결을 사용하여 FTP를 통해 여러 파일 다운로드

분류에서Dev

Python을 사용하여 단일 Tkinter 캔버스에 여러 URL의 여러 이미지를 표시하는 방법

분류에서Dev

Linux comand awks를 사용하여 여러 필드 파일에서 하나의 필드 파일을 분할하는 방법은 무엇입니까?

분류에서Dev

Tkinter 창을 사용하여 카메라 미리보기를 보여주는 다른 파이썬 파일 실행

분류에서Dev

와일드 카드를 접두사로 사용하여 여러 파일의 이름을 바꾸는 방법

분류에서Dev

pandas [MemoryError :]를 사용하여 하나의 폴더에 여러 csv 파일 결합

분류에서Dev

cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

분류에서Dev

NodeJS를 사용하여 여러 HTML 파일을 제공하는 방법

Related 관련 기사

  1. 1

    sftp를 사용하여 여러 파일을 넣는 방법

  2. 2

    이 코드를 사용하여 여러 첨부 파일이있는 이메일을 보내는 방법

  3. 3

    여러 csv 파일을 가져오고 Pandas를 사용하여 하나의 DataFrame으로 연결하는 방법

  4. 4

    CMD 또는 Batch를 사용하여 여러 파일을 하위 폴더에서 하나의 폴더로 이동

  5. 5

    CMD 또는 Batch를 사용하여 여러 파일을 하위 폴더에서 하나의 폴더로 이동

  6. 6

    PHP를 사용하여 PDF 파일을 업로드하는 방법의 코드

  7. 7

    Python을 사용하여 여러 개의 Excel 파일을 여러 시트가있는 하나의 파일로 동적으로 만드는 방법

  8. 8

    bootstrap-vue를 사용하여 여러 파일을 업로드하는 방법

  9. 9

    단일 코드 파이프 라인을 사용하여 여러 Lambda 함수를 배포하는 방법

  10. 10

    gsutil cp는 일괄 업로드를 사용하여 한 번에 여러 파일을 업로드하나요?

  11. 11

    인수가있는 JQ를 사용하여 여러 json 파일을 하나의 객체로 병합

  12. 12

    하나의 ttf 파일을 사용하는 여러 BitmapFonts

  13. 13

    하나의 파일을 사용하여 여러 명령 실행

  14. 14

    mysql 및 php를 사용하여 여러 csv 파일을 만드는 동안

  15. 15

    jq를 사용하여 여러 파일의 JSON 레코드를 통합하는 방법

  16. 16

    json을 사용하여 여러 레코드 세트를 반환하는 방법

  17. 17

    Perl에서 YAML을 사용하여 여러 파일을로드하는 방법

  18. 18

    찾기를 사용하여 여러 파일의 이름을 바꾸는 방법

  19. 19

    PHP를 사용하여 여러 파일 이름을 복사하는 방법?

  20. 20

    XSLT를 사용하여 하나의 XML 파일 섹션을 여러 HTML 파일로 분할

  21. 21

    Pandas에서 특정 행 수를 사용하여 하나의 Excel 파일을 여러 파일로 분할

  22. 22

    .NET Core에서 하나의 연결을 사용하여 FTP를 통해 여러 파일 다운로드

  23. 23

    Python을 사용하여 단일 Tkinter 캔버스에 여러 URL의 여러 이미지를 표시하는 방법

  24. 24

    Linux comand awks를 사용하여 여러 필드 파일에서 하나의 필드 파일을 분할하는 방법은 무엇입니까?

  25. 25

    Tkinter 창을 사용하여 카메라 미리보기를 보여주는 다른 파이썬 파일 실행

  26. 26

    와일드 카드를 접두사로 사용하여 여러 파일의 이름을 바꾸는 방법

  27. 27

    pandas [MemoryError :]를 사용하여 하나의 폴더에 여러 csv 파일 결합

  28. 28

    cx_freeze를 사용하여 Python에서 여러 파일로 단일 .exe 파일을 빌드하는 방법

  29. 29

    NodeJS를 사용하여 여러 HTML 파일을 제공하는 방법

뜨겁다태그

보관