সাধারণ ডায়ালগ সহ পাইথনে একটি ফাইল নির্বাচন করা


127

আমি আমার পাইথন কনসোল অ্যাপ্লিকেশনটিতে ইনপুট হিসাবে ফাইলের পথ পেতে চাই।

বর্তমানে আমি কেবল কনসোলে একটি ইনপুট হিসাবে পুরো পাথের জন্য বলতে পারি।

কোনও সাধারণ ব্যবহারকারী ইন্টারফেসকে ট্রিগার করার কোনও উপায় আছে যেখানে ব্যবহারকারীরা পুরো পথটি টাইপ না করে ফাইল নির্বাচন করতে পারে?

উত্তর:


212

টিন্টার ব্যবহার সম্পর্কে কীভাবে?

from Tkinter import Tk
from tkinter.filedialog import askopenfilename

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)

সম্পন্ন!


আমি টাইপ এরর পেয়েছি: 'মডিউল' অবজেক্টটি টাকার উপর কল করা যায় না ()। প্রত্যাহার () - কোনও ধারণা?
ব্যবহারকারী 39131339

1
আমাকে রুট = টক.টেক () এর পরে রুট.বিহীন ড্র করতে হবে ()। এখন খোলা ফাইল ডায়ালগ উইন্ডোটি বন্ধ হয় না।
ব্যবহারকারী 39131339

20
পাইথন ৩.x ব্যবহার করে এবং আমি বিশ্বাস করি যে "টিনকিটার" আসলে সমস্ত ছোট হাতের অক্ষর, "টিনকিটার" বলে মনে করা হয়।
ওয়েস্টএস

1
@ ওয়েস্টএস হ্যাঁ, পাইথন 3-এর জন্য এটি "টিন্টার" থেকে "টিনকিটার" হিসাবে পরিবর্তন করা হয়েছিল
বেন

1
কেবলমাত্র নির্দিষ্ট ধরণের ফাইলকেই অনুমতি দেওয়ার কোনও উপায় আছে কি? যেমন। আমি চাই যে ব্যবহারকারী কেবল চিত্র ফাইলগুলি নির্বাচন করতে পারে
শান্তনু শিন্ডে

85

সম্পূর্ণতার জন্য ইটায়নের উত্তরের পাইথন 3.x সংস্করণ:

from tkinter.filedialog import askopenfilename
filename = askopenfilename()

7
মোট সমান্তরালতার জন্য, সম্ভবত import tkinter+ থাকা উচিত tkinter.Tk().withdraw()
imallett

4
এটি আমার পক্ষে কাজ করে না (ম্যাক, পাইথন ৩.6..6 এ) জিইউআই উইন্ডোটি খোলে তবে আপনি এটি বন্ধ করতে পারবেন না এবং আপনি মৃত্যুর সৈকত পেতে পারেন
বেন ভিনসেন্ট

1
একই অবস্থা. ফাইলের কথোপকথনটি বন্ধ হবে না
ক্যাবারা

1
এই কোডটি গৃহীত উত্তর হিসাবে ঠিক একই তবে অসম্পূর্ণ।
এরিক

ম্যাক 10.14.6 এ, এটি ফাইল সন্ধানকারীটি খোলার পরে এটি কেবল পুরো সিস্টেমটি ক্র্যাশ করেছে :(
গেয়া

29

সঙ্গে EasyGui (ডকুমেন্টেশন দ্বারা উত্পন্ন pydoc এবং epydoc সংস্করণ 0.96 জন্য):

import easygui
print(easygui.fileopenbox())

স্থাপন করা:

pip install easygui

ডেমো:

import easygui
easygui.egdemo()

4
এটি এখন পর্যন্ত সেরা সমাধান। মূল কারণ হ'ল ইজিগুই হ'ল একটি পাইপ প্যাকেজ এবং সহজেই ইনস্টল করা
যোনাতন নাওর

2
ম্যাক ওএসএক্স 10.14.5 এ, অজগর 3.6.7, ইজিগুই 0.98.1 এ চেষ্টা করার পরে আমি একটি ভয়াবহ ক্রাশ পেয়েছি। প্রস্তাবিত নয়।
ক্রিস্টোফার বারবার

আমি কেন invalid syntaxত্রুটি পাচ্ছি print easygui.diropenbox()?
ব্রিকটপ


1
10.14.6 এর সাথে ক্রিস্টোফারবার্বার একই @ পাইথন সবে ছাড়তে থাকে।
গেয়া

11

পাইথন 2 এ tkFileDialogমডিউলটি ব্যবহার করুন ।

import tkFileDialog

tkFileDialog.askopenfilename()

পাইথন 3 এ tkinter.filedialogমডিউলটি ব্যবহার করুন ।

import tkinter.filedialog

tkinter.filedialog.askopenfilename()

পাইথন 3 এ এটি স্ট্যান্ডার্ড ইনস্টলেশনের অংশ নয়
মাইগুয়েলমোরিন

3

বিবেচনা করার জন্য আরেকটি বিকল্প হ'ল জেনিটি: http://freecode.com/projects/zenity

আমার এমন পরিস্থিতি হয়েছিল যেখানে আমি পাইথন সার্ভার অ্যাপ্লিকেশনটি বিকাশ করছিলাম (কোনও জিইআইআই উপাদান নেই) এবং তাই কোনও পাইথন জিইআইআই সরঞ্জামদণ্ডের উপর নির্ভরতা প্রবর্তন করতে চাইনি, তবে আমি চাইছিলাম যে আমার কিছু ডিবাগ স্ক্রিপ্টগুলি ইনপুট ফাইল দ্বারা প্যারামিটারাইজড করা উচিত এবং ব্যবহারকারী যদি কোনও কমান্ড লাইনে কোনও নির্দিষ্ট না করে থাকে তবে তাদের কোনও ফাইলের জন্য দৃষ্টি দিতে হবে। Zenity একটি নিখুঁত ফিট ছিল। এটি অর্জন করতে, সাবপ্রসেস মডিউলটি ব্যবহার করে "জেনিটি --ফাইল-নির্বাচন" করুন এবং স্টাডআউটটি ক্যাপচার করুন। অবশ্যই এই সমাধানটি পাইথন-নির্দিষ্ট নয়।

Zenity একাধিক প্ল্যাটফর্ম সমর্থন করে এবং ইতিমধ্যে আমাদের ডেভ সার্ভারগুলিতে ইনস্টল হয়ে গেছে যাতে এটি অবাঞ্ছিত নির্ভরতা না পরিচয় করে আমাদের ডিবাগিং / বিকাশকে সহজতর করে।


0

টিনেটারের চেয়ে ডাব্লুএক্সপিথনের সাথে আমি আরও ভাল ফলাফল পেয়েছি, যেমন পরবর্তী সদৃশ প্রশ্নের উত্তরটিতে প্রস্তাবিত:

https://stackoverflow.com/a/9319832

ডাব্লুএক্সপিথন সংস্করণটি ফাইল ডায়লগটি তৈরি করেছিল যা আমার ওপেনসুএস টাম্বলবিড ইনস্টলেশনটি সম্পর্কে xfce ডেস্কটপের সাথে অন্য কোনও অ্যাপ্লিকেশন থেকে ওপেন ফাইল ডায়লগের মতোই দেখা যায়, অন্যদিকে টিনকিটার অচেনা পার্শ্ব-স্ক্রোলিং ইন্টারফেসের সাহায্যে পড়া বাছাই করা এবং জটিল কিছু তৈরি করেছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.