自分のブログ名

sheephumanのブログ

広汎性発達障害と診断されたASD孤立型。

PythonでZIPファイルを扱ってみる記録


しきりにプログラミングをしたいという知人が居て、仕方が無いので骨折り作業をしている。僕もスキルは欲しいし。
プログラミングそのものを仕事にするのは生涯ムリだろうと思います。
VsCodeのセットアップが出来なかったんでPyCharm使ってます。

ZIPを扱うアプリの制作です。
目標としてはEXE化して、ドラッグ&ドロップでZIPを生成するとこまでやりたい。


まず試してみたコード 

qiita.com

初心者がC#やったりすると実行方法が分からなくて苦労するんだけど、Pythonは楽でいいですね。コピペで終わるから。



Tkinderの動画でGUIの基礎を学ぶ

www.youtube.com
動画って意外と疲れるんですよね。ちょっとでも打ち間違えると動かんし。
Tkinderは比較的コードがシンプルで楽ですね。



Python(tkinter)にてテキストボックスの高さや幅(大きさ)、色、複数行で作成する方法【ラベルも併せて解説】 | ウルトラフリーダム


【Python】テキストボックス(Tkinter.Entry)の作成・クリア・取得・セット | 鎖プログラム



qiita.com


f:id:sheephuman:20210408203529p:plain

デモプレイ動画

音楽流して作業してるんで図らずも入ってしまう('ω';)

www.youtube.com




ソースコード全文

コピペで動くはずです。

デモ手順:

  1. ファイル選択画面でzipファイルを指定してください
    2. 「新しいフォルダ」を作成し、保存場所を指定してください
    今回はTest.zip(個人的お宝がぞうを入れたもの)を使用しています(動画参照)
from tkinter import *
from tkinter import messagebox as mb
import os, tkinter, tkinter.filedialog, tkinter.messagebox
import zipfile



win = Tk()
mylabel = Label(win, text="ZipFileのパス")
mylabel.pack(fill = 'x', padx=20, side = 'left')
mylabel.pack()

text = Entry(win,width=100)
text.pack(fill='x', padx=5, side = 'right')
SourceFile = Entry(win)



text.pack()
#SourceFile.pack()
text.insert(END, " ")
SourceFile.insert(END, " ")


def ok_click():
    # ファイル選択ダイアログの表示
    root = tkinter.Tk()
    root.withdraw()
    fTyp = [("", "*")]
    iDir = os.path.abspath(os.path.dirname(__file__))
    file = tkinter.filedialog.askopenfilename(filetypes=fTyp, initialdir=iDir)
    a = file
    text.insert(END,a)

    # ファイルの展開
    with zipfile.ZipFile(a) as myzip:
        extractFolder = tkinter.filedialog.askdirectory()
        myzip.extractall(extractFolder)  # zipファイルに含まれているファイルを全て取り出す
        tkinter.messagebox.showinfo('ひつじプログラム', '処理が完了しました!')

okButton = Button(win, text="OK", command=ok_click)
okButton.pack()

win = mainloop()

あとがき


意外とあっさり終わりました。PySinpleGUIは何やらごちゃごちゃして分かりづらかったんだよね。 ドラッグ&ドロップは気が向いたらやります。