pythonでcsvをimportしようとしているのですが、下記のコードを実行し参照ボタンをクリックしたあとに、フォルダは選択できるのですが、なぜかファイルが表示されずファイルの指定ができません。
色々調べたのですが自分では原因が分かりません。
何か分かる方はいらっしゃいませんでしょうか。
# merge_pdf_app.py (画面パーツの配置のみ) import tkinter import tkinter.filedialog as filedialog import tkinter.messagebox as messagebox from tkinter import ttk def ask_folder(): path = filedialog.askdirectory() folder_path.set(path) def app(): input_dir = folder_path.get() # 保存するPDFファイルを指定 output_file = filedialog.asksaveasfilename( filetypes=[("CSV Files(utf-8)", "*")], defaultextension=".csv" ) if not input_dir or not output_file: return # メッセージボックス messagebox.showinfo("完了", "完了しました。") # メインウィンドウ main_win = tkinter.Tk() main_win.title("test") main_win.geometry("500x120") # メインフレーム main_frm = ttk.Frame(main_win) main_frm.grid(column=0, row=0, sticky=tkinter.NSEW, padx=10, pady=10) # ウィジェット作成(フォルダパス) folder_label = ttk.Label(main_frm, text="フォルダ指定") # パラメータ folder_path = tkinter.StringVar() # ウィジェット(フォルダ名) folder_box = ttk.Entry(main_frm, textvariable=folder_path) folder_btn = ttk.Button(main_frm, text="参照", command=ask_folder) # ウィジェット(実行ボタン) app_btn = ttk.Button(main_frm, text="実行", command=app) # ウィジェットの配置 folder_label.grid(column=0, row=0, pady=10) folder_box.grid(column=1, row=0, sticky=tkinter.EW, padx=5) folder_btn.grid(column=2, row=0) app_btn.grid(column=1, row=2) # 配置設定 main_win.columnconfigure(0, weight=1) main_win.rowconfigure(0, weight=1) main_frm.columnconfigure(1, weight=1) main_win.mainloop() # メインウィンドウの作成
実行ログに何か吐いてませんか?
また、実行時の画面キャプチャなどはありませんか?
> pythonでcsvをimportしようとしているのですが、
自分で書いたコードではないのかな? 「# 保存するPDFファイルを指定」とコメントにあるのに、ファイルタイプはCSVにしているし。そもそも保存したいわけではないですよね?
> 参照ボタンをクリックしたあとに、フォルダは選択できるのですが、なぜかファイルが表示されずファイルの指定ができません。
フォルダーを選択するダイアログを「filedialog.askdirectory()」で開いているのだから当然ですよね。ファイルを開きたいのですか?
どこかに載っていたコードを、わけもわからず書き換えているような感じがします。
見つけました。
https://gammasoft.jp/support/create-gui-by-tkinter/
「Pythonプログラム用にTkinterで画面(GUI)を作成する方法 | ガンマソフト株式会社」
コメントは参照元のものがそのまま残ってしまっていました。紛らわしくすみません。csvファイルを指定して取り込みたいのですが、askdirectory ではなくasksaveasfilenameで指定できるのでしょうか。
参照しているプログラムが掲載されているページをリンクとして質問に書きましょう。
askdirectoryは「フォルダーの選択」用、asksaveasfilenameは「名前を付けてファイルを保存」用のダイアログです。どちらもあなたの目的には合いません。
https://docs.python.org/3/library/dialog.html#native-load-save-dialogs
なるほど。ありがとうございます。
回答3件
あなたの回答
tips
プレビュー