Python3에서 파일 선택 대화 상자(초보자용)

13374 단어 Tkinter파이썬
실행된 환경

우분투 스튜디오 17.10
파이썬 3.6.3

@kekeho 님의 Python으로 MP3 음원 재생
htps : // 코 m / 케케 호 / ms / 아 0b93695d8 아 8 아 c6f1028
mp3 파일을 선택하는 대화 상자를 결합하려고했지만 검색하고 히트하는 것은 Python2 용이 많습니다.

실행하면 import에서 오류가 발생합니다.
검색 중이면 tkMessageBox, tkFileDialog가 python3에 통합되어있는 것 같습니다.

참고

Cassiopeia의 일기 씨
[Python] Tkinter (tkFileDialog)를 사용하여 파일 열기 대화 상자를 사용해보십시오.
htp://d. 하테나. 네. jp/카시오페아아/20070819/1187479725

tkMessageBox
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 19074055 / 엔 s 툰 굿 케이크 메사게 보 x 온 py 쵸 2-7

tkFileDialog
h tps : // s t c ゔ ぇ rf ぉ w. 코 m / 쿠에 s 치온 s / 28590669 / t Kinte rtk ぃ

file_dialog.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-

#import Tkinter #python2
import tkinter #python3
#import tkMessageBox  #python2
from tkinter import messagebox as tkMessageBox #python3
#import tkFileDialog #python2
from tkinter import filedialog as tkFileDialog #python3

#root=Tkinter.Tk() #python2
root=tkinter.Tk() #python3
root.withdraw()

fTyp=[('テキストファイル','*.txt')]
#複数のタイプを指定することも可能。

iDir='/home/ユーザ名/'  #iDir='c:/' #Windows

#askopenfilename 一つのファイルを選択する。
filename=tkFileDialog.askopenfilename(filetypes=fTyp,initialdir=iDir) 

tkMessageBox.showinfo('FILE NAME is ...',filename)

#askopenfilenames 複数ファイルを選択する。
filenames=filedialog.askopenfilenames(filetypes=fTyp,initialdir=iDir) 

for f in filenames:
    tkMessageBox.showinfo('FILE NAME is ...',f)

#askdirectory ディレクトリを選択する。
dirname=tkFileDialog.askdirectory(initialdir=iDir)

tkMessageBox.showinfo('SELECTED DIRECROTY is ...',dirname)




초간이 MP3 간이 플레이어



상기의 「Python으로 MP3 음원을 재생한다」를 참고로 작성했습니다.

사용방법
시작하고 파일을 만든 후 반드시 취소 버튼을 클릭합니다.
재생 후 종료됩니다.

바로 가기를 만들고 시작 중입니다.
Terminal이 시작되도록 true로 설정합니다.
htps : // 이 m / ty21 ky / ms / 7 5d88 44714 9f672
#!/usr/bin/python3
# coding: UTF-8

from mutagen.mp3 import MP3 as mp3
import pygame
import time
import tkinter
from tkinter import messagebox as tkMessageBox
from tkinter import filedialog as tkFileDialog

def pathname(fullpath): #フルパスからパスを取り出す
    n = fullpath.rfind('/') + 1
    return fullpath[:n]

def play(filenames): #MP3を再生
    #n = len(file) - 1
    for file in filenames:
        print(" {}\n".format(file))  #曲名表示
        pygame.mixer.init()
        pygame.mixer.music.load(file)
        mp3_length = mp3(file).info.length
        pygame.mixer.music.play(1)
        time.sleep(mp3_length + 1.25)
        pygame.mixer.music.stop()

def select(): #ファイル選択
    root=tkinter.Tk()
    root.withdraw()
    fTyp = [('MP3ファイル','*.mp3')]
    iDir = '~/Music/' #デフォルトのフォルダはHomeDir
    filename = []
    while True:
        list_no = len(filename)
        filename.insert(list_no, tkFileDialog.askopenfilename(filetypes=fTyp,initialdir=iDir,title = "簡易MP3 Player (ファイル選択を終了する時はキャンセルをクリック)"))
        iDir = pathname(filename[list_no]) #選択するフォルダを1つ前に選択したフォルダに変更
        if filename[list_no] == '':
            break
    i = len(filename) - 1
    del filename[i] #ファイル選択の時に、最後にnullが入っているので削除する
    print(" 再生する曲名\n")
    for kyoku in filename:
        print(" {}\n".format(kyoku))
    print("再生中------------------------------------------\n")

    return filename

print("\n MP3 簡易プレーヤー\n")
play(select()) #MP3を再生



좋은 웹페이지 즐겨찾기