
در برنامهنویسی با اهداف مختلفی نیاز داریم با فایلها کار کنیم. در این آموزش نحوه کار با فایل در پایتون (Python File Handling) را بررسی کرده و ترفندهای کاربردی آن را میآموزیم.
برای کار با فایل در پایتون نیاز به استفاده و Import کردن هیچ ماژول اضافی و مازادی نداریم.
برای کار با فایل باید از شئ File در پایتون استفاده کنیم. این شئ (Object) اطلاعاتی از فایل و توابعی سادهای در اختیارمان میگذارد تا بتوانیم با فایلها به راحتی کار کنیم.
در اولین قدم برای انجام عملیاتهای مختلف روی فایل، ایجاد یک شیء از File مورد نظر است. برای این کار از تابع open()
استفاده میکنیم.
این تابع دو آرگومان ورودی میگیرد؛ اولی مسیر و نام فایل است و دومین آرگومان مشخص کننده حالت باز شونده فایل است.
file_name = "test.txt"
file = open( file_name, "a+" )
در این آموزش من از پایتون نسخه 3 استفاده میکنم؛ در نسخه 2.7 نیز روند کار به صورت مشابه هست و ممکن است در syntax دستورات تفاوتهای کوچکی باشد.
فهرست محتوای آموزش
حالت (mode) های مختلف باز کردن فایل
همانطور که میدانید هنگام باز کردن یک فایل برای خواندن یا نوشتن، حالتهای مختلفی وجود دارد. برخی از مهمترینِ آنها عبارتاند از:
- r : خواندن (شروع از ابتدای فایل)
- r+ : خواندن و نوشتن (شروع از ابتدای فایل)
- w : ایجاد فایل برای نوشتن (شروع از ابتدا)
- w+ : ایجاد فایل برای نوشتن و خواندن (شروع از ابتدا)
- a : خواندن (شروع از انتها)
- a+ : خواندن و نوشتن (شروع از انتها)
در دو مورد سوم و چهارم (حالت w) در صورتی که فایلی از قبل وجود داشته باشد، فایل را پاک کرده و یک فایل جدید ایجاد میکند.
در دو حالت a در صورتی که فایلی وجود داشته باشد، آن را باز کرده و از انتهای آن شروع به انجام عملیات میکند و اگر فایلی وجود نداشته باشد، یک فایل خالی ایجاد میکند.
حالتهای مختلف دیگری نیز برای کار با فایل وجود دارند که پر کاربردترین آنها، موارد فوق هستند. اگر میخواهید با سایر modeها آشنا شوید به جدول موجود در این لینک مراجعه کنید.
اگر با اکسل یا csv کار میکنید، به آموزشهای مخصوصشان بروید: اکسل در پایتون و کار با csv در پایتون.
ساخت فایل در پایتون
با این تفاصیر، اگر تابع open()
را برای فایلی که وجود ندارد فراخوانی کنید، آن فایل برایتان ایجاد شده و میتوانید اطلاعاتتان را درون آن قرار دهید.
به همین سادگی میتوان یک فایل جدید با هر فرمت دلخواهی ایجاد کرده و دادههای متنی خود را درون آن ذخیره کرد.
توجه داشته باشید که در هنگام صدا زدن تابع open()
در صورتی که آرگومان دوم مشخص نشود و صرفاً نام و مسیر فایل به عنوان ورودی داده شده باشد، فایل به طور پیشفرض در حالت r و برای خواندن ایجاد خواهد شد.
مقدار برگردانده شده توسط تابع open()
را در یک متغیر ذخیره میکنیم تا بعداً بتوانیم توابع مورد نیاز خود را روی آن صدا زده و عملیاتهای مختلفی روی فایل خود انجام دهیم.
file_name = "test.txt"
file = open(file_name)
برای درک بهتر، از یک فایل کمکی استفاده میکنیم که محتویات زیر را دارد:
dear user, This is a test file! visit us at www.SabzDanesh.com
در کدهای مثال زده شده، موارد کامنت شده (با استفاده از #
در ابتدای خط) به معنای خروجی حاصل از اجرای کد میباشد.
خواندن فایل در پایتون
برای خواندن فایل متنی در پایتون میتوان از روشها و توابع مختلفی استفاده کرد. در ادامه سه تابع مهم و یک ترفند کاربردی را با هم بررسی میکنیم.
تابع read
این تابع روی متغیر شی فایل صدا زده میشود. خروجی آن یک رشته متنی بزرگ حاوی تمام محتویات فایل ما است.
file = open(file_name)
print( file.read() )
# dear user,
# This is a test file!
# visit us at www.SabzDanesh.com
توجه کنید که اگر این تابع را دو بار پشت سر هم صدا بزنیم، در دفعه دوم، هیچ مقداری برای ما چاپ نمیشود! به دلیل اینکه تمام فایل تا انتها بررسی و خوانده شده و دیگر محتوای بیشتری برای نمایش نداریم.
تابع read()
میتواند یک آرگومان ورودی به صورت دلخواه داشته باشد؛ این آرگومان از نوع عددی بوده و مشخص میکند که چه تعداد کاراکتر خوانده شود.
file = open(file_name)
print( file.read(7) )
# dear us
تابع readline برای خواندن خط به خط فایل در پایتون
این تابع در هر بار صدا زده شدن روی فایل، یک خط از فایل را به ما بر میگرداند. یعنی میتوان آن را به تعداد خطوط موجود در فایل (با احتساب خطوط خالی) فراخوانی کنیم.
file = open(file_name)
print( file.readline() )
print( file.readline() )
# dear user,
#
# This is a test file!
#
توجه کنید که در انتهای هر خط فایل، کاراکتر سطر جدید (\n
) وجود دارد و تابع print که ما در مثال استفاده میکنیم نیز پس از هر بار چاپ کردن، به سطر جدید میرود؛ به همین دلیل است که در نتیجه کد فوق، برای هر خط، دو بار به سطر جدید میرویم.
تابع readlines
گاهی در هنگام خواندن فایل در پایتون لازم داریم تا تمام محتویات یک فایل را درون یک لیست داشته باشیم. اولین راه حل خواندن تک تک خطوط و ریختن آنها در یک لیست پایتون است. اما تابع readlines()
این کار را با سرعت بسیار زیاد برایمان انجام میدهد.
با صدا زدن این تابع، یک لیست به عنوان خروجی داریم که شامل خطوط موجود در فایل است. یعنی هر عضو این لیست معادل یک خط در درون فایل خواهد بود.
file = open(file_name)
print( file.readlines() )
# ['dear user,\n', 'This is a test file!\n', 'visit us at www.SabzDanesh.com']
استفاده از حلقه برای خواندن فایل
یک روش ساده برای خواندن خط به خط یک فایل در پایتون، استفاده از حلقه for پایتون یا به عبارتی for each
میباشد.
در صورتی که متغیر فایل را در یک حلقه استفاده کنیم، مشابه آن است که تابع readlines()
را روی آن صدا زده و لیست نتیجه را به حلقه for دادهایم.
file = open(file_name)
for line in file:
print(line)
# dear user,
#
# This is a test file!
#
# visit us at www.SabzDanesh.com
بستن فایل پس از کار با فایل در پایتون
همیشه دقت کنید که پس از اینکه کارتان با فایل باز شده تمام شد، با صدا زدن تابع close()
روی شئ فایل، آن را ببندید. هر چند که پس از اتمام اجرای برنامه پایتون، فایل به صورت خودکار بسته میشود، اما این کار به آزاد شدن زودتر منابع کمک خواهد کرد.
همچنین اگر در هنگام نوشتن یک فایل باشید و فایل به درستی بسته نشود، ممکن است چیزی در فایل ذخیره نشود. به نوعی تغییراتتان اعمال نخواهد شد.
file.close()
نوشتن فایل در پایتون
برای نوشتن فایل متنی در پایتون دو تابع اصلی وجود دارد. در ادامه این دو تابع را با هم بررسی میکنیم.
تابع write برای نوشتن رشته در فایل
این تابع یک رشته را به عنوان ورودی گرفته و آن را درون فایل مینویسد.
file_name2 = "test2.txt"
file = open(file_name2, "w")
file.write("hello world!")
file.close()
با اجرای قطعه کد بالا، درون فایل text2.txt
که در کنار برنامه وجود داشته یا ایجاد شده است، صرفاً عبارت معروف hello world!
نوشته خواهد شد.
تابع writelines
این تابع یک لیست از رشتههای متنی گرفته و آن ها را به ترتیب درون فایل مورد نظر مینویسد.
file = open(file_name, "w")
file.writelines( ["hello world!\n", "test line"] )
file.close()
اضافه کردن محتوا به محتوای موجود در فایل پایتون
در بخش معرفی حالات باز کردن یک فایل گفتم که اگر فایل موجود را در حالت w باز کنیم، تمام محتویات قبلی حذف شده و فایل آماده نوشته شدن محتوای جدید میشود.
در صورتی که بخواهیم به محتوای فعلی یک فایل، محتوای جدیدی اضافه کنیم، میبایست فایل را در حالت a (ابتدای کلمه append) باز کرده و سپس عملیات نوشتن در فایل را انجام دهیم.
حذف فایل در پایتون
برای حذف کردن یک فایل در زبان پایتون، نیاز به یک ماژول سیستمی داریم. این ماژول یا کتابخانه به طور پیشفرض در پایتون وجود دارد و میتوان با اضافه کردن ماژولی به نام os آن را به برنامه خودمان اضافه کنیم.
بنابراین در ابتدای برنامه خود کد زیر را مینویسیم.
import os
این ماژول یک تابع به نام remove()
دارد که با صدا زدن و دادن نام فایل به عنوان ورودی، فایل مورد نظر حذف میشود. برای درک بهتر به قطعه کد زیر دقت کنید. (بیشتر بدانید: کار با ماژول در پایتون)
os.remove("test2.txt")
در اینجا فایل test2.txt
در کنار فایل اصلی پایتون قرار دارد. اگر فایل شما در هر جای دیگری قرار دارد، میتوانید مسیر آن را به عنوان ورودی این تابع تعریف کنید.
برای جلوگیری از به وجود آمدن خطا در هنگام حذف یک فایل، بهتر است ابتدا بررسی کنیم که آیا فایل در مسیر مورد نظر وجود دارد یا خیر و سپس اقدام به حذف آن کنیم.
برای این کار میتوان از توابع دیگری که در ماژول os وجود دارد استفاده کرده و مانند قطعه کد زیر، عملیات حذف را انجام دهیم.
if os.path.exists("delete_file.txt"):
os.remove("delete_file.txt")
مدیریت خطا در خواندن فایل پایتون
هنگام کار با فایل در پایتون ممکن است با خطاهای مختلفی مواجه شویم. این خطاها دلایل مختلفی دارند و بهتر است برای رفع آن به متن پیام خطا مراجع کنیم.
دلایل رایج خطا در نوشتن فایل پایتون یا خواندن آن عبارتاند از:
- فایل مورد نظر توسط برنامه دیگری در حال استفاده است. (برای باز شدن مجدد توسط سیستم عامل قفل شده)
- مسیر فایل اشتباه وارد شده و چنین مسیری وجود ندارد.
- نام فایل به درستی وارد نشده و از کاراکترهای غیرمجاز در آن استفاده شده است.
اغلب این خطاها در هنگام اجرای برنامه رخ میدهد و نمیتوان آنها را از قبل پیشبینی کرد. بهتر است همواره برای کار با فایل در پایتون از بلوکهای try except
استفاده کرد.
یک مثال ساده از تلاش برای باز کردن فایل در پایتون به صورت زیر است.
try:
open("testFile.txt")
except:
print("An Error Occurred While Opening File!")
در جلسه قبلی آموزش، با روش مدیریت خطا آشنا شدیم. اگر ساختار بالا برایتان ناآشناست، جلسه قبلی را مرور کنید.
جمعبندی: کار با فایل در پایتون
در این آموزش کار با فایل در زبان پایتون را یاد گرفتیم. در ابتدا فهمیدیم که باز کردن یک فایل، حالتهای مختلفی دارد که متناسب با نیازمان میتوانیم از آنها استفاده کنیم.
روشهای خواندن فایل در پایتون را با هم بررسی کردیم. از تابع open()
برای باز کردن فایل استفاده میشود. این تابع یک ورودی میگیرد که آدرس و نام فایل مورد نظر است. با 3 تابع اصلی برای کار با فایل (مثلاً خواندن فایل txt) آشنا شدیم:
read | برای خواند کل محتوای فایل |
readline | برای خواندن خط به خط فایل |
readlines | تبدیل محتوای فایل به لیست |
سپس با روشهای نوشتن فایل در پایتون آشنا شدیم. دیدیم که کار با فایل در پایتون برای نوشتن اطلاعات بسیار ساده بوده و میتوان به کمک توابع write()
یا writelines()
محتوای دلخواه خود را در فایل بنویسیم.
در انتها نیز os.remove()
برای حذف فایل معرفی شد. همچنین در یک مثال، از ساختار try except برای جلوگیری از خطای خواندن فایل در پایتون استفاده کردیم.
امیدوارم از این پس بتوانید عملیات کار با فایل در پایتون را به راحتی انجام داده و از آن لذت ببرید. بخش دیدگاههای آموزش برای نظرات و سؤالات شماست!
این آموزش بخشی از یک آموزش جامع و قدم به قدم در سبز دانش است: دوره رایگان آموزش پایتون
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سلام
میخواستم بپرسم اگر چند عدد دو رقمی را بدون فاصله در یک فایل تکست ذخیره کنیم و بعد بخوایم اون اعداد رو به صورت دو رقم دو رقم بخوانیم باید چیکار کنیم؟
سلام
اینطوری شما یک رشته دارید که لازمه دو تا دو تا ازش بخونید. رشتهها خاصیت indexing و slicing دارند؛ پس میتونید این کار رو انجام بدید. جلسهٔ کار با رشتهها در دوره جامع رایگان رو ببینید تا دیدِ بهتری بهتون بده.
سلام وقت بخیر ممنون از مطالب مفیدتون
من میخوام یک متن بنویسم بعد وقتی اون متن رو خوند یک عبارت را با دستورات پایتون به فایل اضافه کنم لطفا راهنمایی کنید
سلام
به نظر میرسه با یه ساختار شرطی و بعدش دستوراتی که برای نوشتن فایل هست کارتون انجام میشه. جلسه شرطها رو حتماً ببینید. و اگه برای خوندن متن یه مثال بگید که بهتر متوجه بشم دقیقاً چه کاری قراره انجام بشه شاید بهتر بتونیم راهنمایی کنیم.
ممنونم یعنی پرینت کنه و بعد اضافه کنه به فایل
میتونید فایل رو در مد
a+
باز کرده و هر بار بعد از پرینت کردن رشتهی مورد نظر اون رو با متدwrite()
درون فایل بنویسید.سلام . ممنون از توضیحات خوبتون
می خواستم بپرسم که مثلا ما اطلاعات فردی رو توی یک فایل ذخیره کنیم . باید چیکار کنم که اگر بخوام اطلاعات نفر بعدی رو توی خط بعد ذخیره کنه و جلوی اطلاعات قبلی ذخیره کنه . خیلی ممنون
سلام
توی فایلها میتونید از
\n
در انتهای خط استفاده کنید تا بره خط بعدی. یعنی کافیه انتهای اطلاعات هر فرد (هر خط) این دو کاراکتر رو هم قرار بدید.سلام
متغیری رو توی پایتون بعد از چندین عملیات به دست آوردم و در نهایت رسم کردم، میخوام تمام دادههایی که توی این متغیر هست و رسمشون منجر به این نمودار شده رو ببینم و اون دادهها رو توی برنامهای مثل اکسل یا تکس بریزم تا با اکسل و یا سایر نرمافزارها هم اون متغیر رو رسم کنم…
احتمالا دادههای درون اون متغیر
ماتریسی ۶۴ در ۶۴ یا بیشتر باشه (البته حدس میزنم چون مشابه این متغیر رو توی متلب به دست آوردم)
متنتون رو خوندم ولی متوجه نشدم که این مورد هم میشه؟
سلام
شاید بهتر باشه از ساختارهایی مثل csv استفاده کنید. (آموزشش رو از اینجا ببینید)
سلام خیلی عالی بود
فقط من یه کد نوشتم که اگه amirali بین یه سری اسم بود بگه true ولی ارور میده
اینم کدشه
از یکی از نظر ها استفاده کردم خلاصه nameerror برای lines میده
اگه می شه راهنمایی کنید
سلام
خب یه چیزی! اونم اینکه توی خط سوم readlines کردید، اما خروجیش رو داخل چیزی قرار ندادید! و اینکه توی خط چهارم گفتید اگه این کلمه در lines بود در حالیکه متغیر lines تعریف نشده.
احتمالاً اگه خروجی خوندن خطوط رو درون متغیری به همین نام بذارید یا اون رو مستقیم در تعریف شرط قرار بدید دیگه خطا نگیرید.
مطالبتون عای بود
واقعا نجاتم داد
ولی بهه یک مشکلی خوردم ؛ میخوام فایل رو داخل پوشه ای که دوست دارم ذخیر کنم ولی نمیشه میشه راهنماییم کنید؟
خوشحالیم برات کاربردی بوده ماهان عزیز
خطایی میده؟ فولدر رو از قبل ایجاد کردن یا اینکه دسترسی ایجاد فولدر رو داره؟
میتونید خودتون چک کنید اگه اون فولدر وجود نداشت یه فولدر بسازید مثلاً.
درود وسلام
در وبگاه زیر مطالب زیادی در رابطه با کار با پوشه و پرونده و فایل هست :
pynative.com/python/file-handling
pynative.com/python-write-file
میتوانید از آن برای ادامه و پر بار کردن این نوشتار بکاربرید.
سپاس
سلام
ممنون بابت اشتراکگذاری این آموزشها. سعیمون در این آموزش آشنایی اولیه بوده. در دوره مکمل مثالهای بیشتری از کار با فایل پایتون میزنیم.
سلام وقتتون به خیر
من یه اسکریپت متنی نوشتم که یه ورودی میگیره و یه خروجی تحویل میگیره برای اینکه کارم ساده تر باشه و هر دفعه نیازی نباشه پایچارم رو باز کنم خواستم تبدیلش کنم به فایل اگزه. الان فایل اگزه درست شده و ورودی رو میگیره ولی وقتی اینتر میزنم بدون اینکه اتفاقی بیوفته صفحه ی کنسولی که باز شده بود بسته میشه و اتفاق خاصی نمیوفته
میشه کمکم کنید؟
سلام
برای رفع مشکلتون پیشنهاد میکنیم سعی کنید گام به گام بررسی کنید که برنامه در چه جایی به مشکل میخوره تا بتونید دلیلش رو هم بهتر پیدا کنید. اینطوری واقعاً نمیشه هیچ راهنماییِ خاصی کرد!
دوم، جلسه اجرای پایتون در دوره جامع رو ببینید. میتونید بدون اینکه ide باز باشه هم با روشهایی (حتی پیشرفتهتر از مواردی که توی اون جلسه میگیم) کدتون رو اجرا کنید.
سلام بنده می خواهم برنامه ام که در مورد جدا کردن صیغه افعال عربی هست درست کنم که از یک فایل تکست ورودی میگیره و بعد خروجی را هم داخل فایل تکست مینویسه ولی هر کار می کنم که مثلاً : حامد را به حمد و فاعل تبدیل کند نمی شود ، می خواهم کاری کنم که بگه در حامد اگر الف خالی داشت پاک کنه بعد پاک کردن بنویسه حمد و چون الف را پاک کرده بنویسد بر وزن فاعل است .
اگر می شود راه نمایی کنید ممنون از سایت خوبتون
سلام
کاری که میخواید یکم چالشهای مرتبط با رشته داره. پیشنهاد میکنم جلسه string رو در دوره جامع حتماً ببینید. و البته اگه بتونید توابع کار با رشته رو هم بررسی کنید خیلی بهتون کمک میکنه. (حدود ۱ هفته دیگه در دوره مکمل یه ویدئو برای توابعش منتشر میکنم)
ممکنه بتونید از عبارات با قاعده (یا regex) فرآیند تشخیص و تغییر رو بهتر انجام بدید.
سلام . ممنون از توضیحات خوبتون .
من یک برنامه گرافیکی درست کردم که مثلا ما روی کلید اضافه کردن شماره کلیک می کنیم . بعد مینویسه نام را وارد نمایید : مثلا علی بعد میپرسه شماره وارد نمایید : مثلا 123456789 بعد وقتی کلید ثبت رو کلیک می کنم بهش گفتم که یک فایل درست کن و اون اطلاعات رو توش ذخیره کن . بعد من ایندفعه روی گزینه پیدا کردن شماره میزنم . اسم رو ازم میپرسه . باید چی کار کنم که بره توی اون فایل رو بگرده و شماره ی اون نام رو پیدا کنه .
باتشکر
سلام
باید دیتای فایل رو که میخونید، جستجو هم انجام بدید. راهحلهای مختلفی دارید. مثلاً میتونه خط به خط باشه یا اینکه همهٔ خطوط رو بریزید داخل یه دیکشنری و بعدش از دیکشنری استفاده کنید.
خیلی ممنون
یعنی الان باید چی بنویسم
کدی که فرستادید یه تابع خالیه! واقعیتش نمیشه تشخیص داد شما چطوری قراره فایل رو بخونید.
شما میتونید از روش استفاده از حلقه برای خوندن فایل استفاده کنید. فقط به جای print کردن یه شرط بذارید ببینید آیا خطتون با مقداری که مدنظرتونه برابره یا نه. اگه برابر بود کاری که میخواید رو انجام بدید.
سلام خسته نباشید.
امکانش هستش متغیر داخل حافظه کامپیتور ذخیره بشه و بعد از بستن فایل پایتون از بین نره؟
ممنون میشم پاسخ بدین.
سلام
برای ذخیره طولانی مدت فکر نمیکنم روشی باشه! چون ساختار رم موقته. البته ابزارهایی برای reload همین کدی که دارید اجرا میکنین وجود داره که با چیزی که شما میخواید متفاوته.
در مجموع پیشنهاد میشه برای ذخیره از پایگاه دادهها مثل mysql در پایتون یا حتی یه فایل استفاده کنید.
توضیحاتتون بسیار قابل فهم و ساده بود ممنونم که این اطلاعات رو در اختیار دیگران قرار میدین
سلام ببخشید
من میخوام که تقریبا 182 قطعه کد رو که یه متغیرایی توش هست که قبلش توسط input دریافت شده رو دریافت کنه و داخل فایلی در همونجا سیو کنه
که این 182 خط خودش یه فایل پایتونه
ولی وقتی دستور write رو میدم میگه که باید دقیقا 3 آرگومان دریافت کنهه ولی شما 19 ارگومان دادید .
بعععد که یههه متغیر اضافهه میکنم تا تبدیل به
file.write(s)
و قبلش هم از str برای string کردنش استفاده میکنم باز همون ارور را میدهمیخخخواستم بدونم نمیشههه از این دستور ها برای تعععدا زیاد قققققطعععهه کد استفاده کرد؟ با این ”’matn”’
ممنون
سلام
اگه قراره یه کار ثابت (نوشتن خطوط توی فایل) انجام بدید میتونید از حلقهها کمک بگیرید. اینطوری شما برای نوشتن یه رشته داخل فایل کد میزنید ولی کد برای تمامِ خطوط اجرا میشه. جلسه حلقهها از دوره رایگان رو ببینید.
سلام این اسکریپت رو یکی از دوستان برای تغییر نام قسمتی از نام فایل های داخل پوشه نوشتن ولی هر کاری می کنم تیرور میدهد مشکل از کجاست؟
سلام
باید ببینید خطاش چیه؛ اینطوری شاید نشه دقیقاً هدف شما رو بررسی کرد.
البته احتمالا میدیم داخل تابع
listdir()
آدرس رو همینطوری نوشته درحالیکه باید رشته (درون کوتیشن) باشه.با عرض سلام و خسته نباشید خدمت تیم پشتیبانی، قسمت listdir رو خودم براش انتخاب کردم، چون محل قرار گیری دیتاها انجاست که باید تغیییرات روی آن قرار بگیرد.
آدرس رو به صورت رشته متنی باید تعریف کنید؛ یعنی داخل ” بذاریدش. احتمالاً اوکی بشه.
اگه آدرس رو تشخیص نداد، به جای / علامت \\ رو هم تست کنید.
سلام هر دو کار را انجام دادم ولی باز ایرور میده، چرا تغییر نام چندین فایل در یک پوشه با این اسکریپت انقد سخته؟
چه اروری میده؟ نوع ارور یا ارور رو بفرستین تا بهتر بتونیم راهنماییتون کنیم.
استاد عزیز اسکایپ دارین تا با اسکایپ با هم ارتباط برقرار کنیم و نحوه تصحیح این اسکریپت را تصویری بهم بگین و هم ببین که من این کارها را انجام دادم ولی باز ایرور می دهد و حتی دیتاها را به درایو دیگری هم انتقال دادم باز هم ایرور می دهد
درود
متأسفانه فعلاً امکان پشتیبانی غیر از سایت و از چند روز آینده پلتفرم آموزشیمون رو نداریم.
سلام استاد عزیز لطفا آدرس ایمیلتونو برام بفرستین تا عکس ایرور رو براتون بفرستم
لطفا چند خط ابتدایی خطا رو در قسمت دیدگاهها ارسال کنید.
سلام خسته نباشید من می خوام متغیری که دارم رو بریزم توی یه فایل و اون متغیر عدد هست
وقتی این کار رو انجام میدم پایتون ارور میده و میگه فقط استرینگ دریافت میشه
راهی وجود داره که من بیام و یه اینتیجر بریزم تو فایل!؟
کد هم اینه:
ممنون میشم راهنمایی کنید
سلام
شما باید string بنویسید و به همین نوع هم بخونید! پیشنهاد میکنم موقع نوشتن با تابع
str()
تبدیلش کنید و وقتی هم قراره بخونید باint()
به عدد تبدیلش کنید.سلام راهی هست که تعداد لاین های یک فایل .txt رو بشه گرفت؟
سلام
تا جایی که اطلاع داریم ویژگی خاصی مستقیماً برای این کار نیست. ولی میتونید خطوط رو بشمارید یا با
readlines()
همهی خطوط رو بریزید درون لیست و len بگیرید.سلام وقت بخیر
من در visual Studio codeبرنامه نوشتم اما به خاطر داشتن input نمایش نمی دهد باید چطوری توی پایتون فایل رو باز کنم؟
سلام
چه چیزی رو نمایش نمیده؟ اگه منظورتون از باز کردن فایل اینه که کد رو اجرا کنید، جلسه اجرای کد پایتون در ابتدای دوره رو ببینید. (یا همین اجرای پایتون رو سرچ کنید داخل سایت)
سلام چطوری دوتا فایل پایتونی به هم وصل میشن یعنی تو یکی اون یکی اینپورت شده
سلام
جلسه تعریف ماژول پایتون و اگر خواستید جلسه بعدیش رو ببینید. import کردن روی ماژولها انجام میشه که توی اون جلسه باهاش کار کردیم.
سلام.ایا دستوری یا کتابخانه ای هست که بتونه یک فایل exe رو به همون شکل باز کنه(یعنی جوری که انگار که کلیک کردیم روی نرم افزار و نرم افزار بازشده)
سلام
از
os.startfile()
میتونید استفاده کنید.سلام یک فایل exe داریم که با پایتون نوشته شده دنبال کدی هستیم که بلافاصله بعد از اجرای ویندوز فایل اجرا بشه
سلام
به این کار اصطلاحاً اجرای startup میگن. در این مورد جستجو کنید راهحل دقیق رو میگیرید. فکر میکنم داخل ویندوز باید فایلتون رو در فولدر startup قرار بدید و تغییراتی در رجیستری یا msconfig بدید.
سلام
1- چطور میشه یک فایل با پسوند (ps1) رو به وسیله پایتون اجرا کرد؟ (بدون استفاده از cmd و ماژول subprocess)
2- ایا به جز ماژول subprocess, os روشه یا ماژوله دیگه ای برای اجرای cmd یا powershell هست؟ (وقتی از تابع system در os و توابع call, Popen, getoutput, check_output در subprocess توی برنامه استفاده میکنم و برنامه رو به exe تبدیل میکنم، آنتی ویروس اون رو بعنوان ویروس شناسایی میکنه)
سلام
1- دقیقاً با روشهایی که در بخش دوم گفتید میتونید فایل رو باز کنید تا دستوراتش اجرا بشه.
2- من همین چند موردی که تست کردید رو میشناسم. تابع startfile در os رو هم تست کنید. ماژول win32api رو هم توی یک جستجو دیدم ولی تجربهای ازش ندارم.
سلام خسته نباشید
وقتی روی دسکتاپ راست کلیک کرده سپس به گزینه new رفته و گزینه text document را انتخاب میکنم سپس تغییر نام داده برای مثال مینویسم my python.py فایل رو به پایتون تبدیل نمیکند .
اگر کمکم کنید سپاسگذار میشوم
سلام
وقتی اسم رو ویرایش میکنید فرمتش (در ابتدا txt) رو هم نشون میده؟ اگه نه از تب View در This PC تیک File Name Extensions رو بزنید تا نشون بده.
سلام ، ممنون از سایت خوبتون .اگر لطف کنین سوال منم پاسخ بدین . من یه سری entry باکس دارم که ازشون ورودی مثل کد ملی نام و غیره میگیرم . سوال اول اینه که چجوری میتونم هر کدوم از این ورودی ها رو ادیت کنم و دو اینکه با دادن کدملی کل اطلاعات ذخیره شده با اون کد ملی رو حذف کنم
سلام
اگه این دیتاها در یک فایل متنی ذخیره هستند باید در یک حلقه خط به خط بخونید و وقتی به کد ملی موردنظر رسیدید اون رو ویرایش یا حذف کنید. (و خوندن و نوشتن خطوط بعدی رو تا انتها ادامه بدید)
اگه این فایل رو به عنوان پایگاه داده یه برنامه دارید استفاده میکنید پیشنهاد میکنیم از دیتابیسها به جای فایل استفاده کنید.
سلام خسته نباشید چجور می تونیم وقتی فایل تکست رو باز کردیم کلمه های فارسی را که می خواهیم در فایل بنویسیم راست به چپ بنویسیم با زبان پایتون (در واقع نوشتن از سمت راست به چپ در فایل توسط پایتون به چه شکل است ؟)تشکر
سلام
شما به هر زبانی که داخل فایل بنویسید، کاراکتر به کاراکتر از ابتدای فایل شروع میکنه. فقط وقتی txt رو مثلاً با notepad باز میکنید پیشفرض بهصورت چپ به راست نمایشش میده. اگه نمایشش رو راستچین کنید میبینید که متن فارسی هم به درستی در فایل ذخیره شده.
سلام عالی بود
فقط اگر من بخوام اندازه فایلی که در اینترنت هست رو بدون اینکه دانلودش کنم ببینم چقدر هست باید چه کاری انجام بدم؟
سلام
در آموزش دانلود با پایتون ماژول requests رو معرفی کردم. میتونید از متد
head(url)
استفاده کنید. ویژگیheaders['Content-Length']
در خروجی این متد مقداری که مدنظرتون هست رو بهتون میده.من در مورد یک تیکه از پروژم میگم.
اومدم یدونه ساختار مشخص برای ارور با ترای ساختم گفتم بیا فایل form.txt را برای خواندن باز کن خب اگر که فایل بود میام میخونم فایلو و با یک ساختار شرطی وارد تابع میکنم که اینو میزاریم کنار…..ولی اگر که پیدا نشه فایل باید ارور بده منم اومدم با except گفتم بیا همون فایل که اسمش form.txt بود را با w+ بساز و وارد یک تابع دیگه بشو توی تابع یکسری ورودی ها گرفته میشه و اگر درست بود توی form.txt کلمه pass را بنویسی.خارج که میشم از برنامه فایل ساخته شده و مشخصه که کلمه هم توش ذخیرست چون حجمش ۳ بایته بعد دوباره برنامه باز بشه بخاژر وجود فایل نباید ارور پیدا نشدن بده و توی شرط هم تعریف شده اگر توی فایل pass نوشته شده بود یک تابع دیگرو باز کن ولی وقتی نگاه میکنم میبینم فایل دوباره ساخته شده با این که از r استفاده کردم و حجم فایل 0 بابت شده
وقتی در بار اول فایل ساخته میشه، اگه با یه ویرایشگر متن بازش کنید کلمه pass داخلش هست؟
موقع کار با فایلها اونها رو
close()
میکنید؟سلام اره چک میکنم pass هست ولی بار بعد با اینکه تعریف کردم r فایل جدید باز میشه اخرم کلوز میکنم
روندی که توضیح دادید به ظاهر صحیحه.
پیشنهاد میکنم جداگانه این کارها رو انجام بدید ببینید به درستی عمل میکنه یا نه؟ الآن نوشتنش درسته؛ پس هیچی. برای خوندن از فایل یه برنامه جداگانه بنویسید که فقط بخونه، اگه درست بود کم کم شرطها رو بهش اضافه کنید احتمالاً یه جایی از برنامه سهواً اشتباهی رخ داده.
برای دیباگ میخوام از pdb استفاده کنم وارد ترمینال میشم مثلا دستور
python -m pdb example.py
را میزنم فایل هم ذخیره شده ولی ارور فایل پیدا نشد میده!؟روی چند تا سورس دیگه هم که مثل همین بودن و ذخیره شده بودن امتحان کردم ارور نداد.روشی برای حل این مشکل دارید؟سلام
اگه با کدهای دیگه کار میکنه احتمالاً دارید درست اجراش میکنید! مسیر فایل رو تغییر بدید شاید برطرف شد.
همچنین میتونید از pdb در داخل کد هم استفاده کنید؛ به اینصورت که ابتدای سورس
pdb.set_trace()
بذارید و برنامه رو مثل همیشه اجرا کنید.سلام کاری میشه کرد که
w+
بیاد ببینه اگر که فایلی با اسمی که برنامه نویس بهش داده وجود داره نیاد پاک کنه و دوباره بسازه؟میخوام برنامه ای بسازم که خب فایل ها خودش توی برنامه ایجاد شه برای اجرای چندین باره بخاطر w فایل ها پاک میشه و به مشکل برمیخورمسلام
فکر کنم میخواید اگه فایلی وجود داشت، محتواش حذف نشه و ادامش نوشته بشه؟ اگر آره از مد
a+
استفاده کنید.در کل برای بررسی وجود یک فایل در پایتون میتونید از ماژول os تابع
os.path.exists(path)
رو صدا بزنید تا بگه فایل در مسیر موردنظرتون وجود داره یا نه.سلام وقت بخیر
من وقتی یه فایل txt فارسی رو با jupyter notebook و با read یا readlines میخوام بخونم متاسفانه متن رو به صورت به هم ریخته نمایش میده. چجوری میتونم این مشکل رو حل کنم؟
سلام
بهعنوان یکی از آرگومانهای
open()
مقدارencoding="utf-8"
رو تعریف کنید ببینید مشکلتون برطرف میشه یا نه؟درست شد خیلییییییی ممنون
سلام من یک برنامه ساختم که با تصویر و فایل های صوتی کار میکنه.حالا روشی هست که کاری کنم که کاربر بدون نصب تصاویر بصورت دستی فقط برنامه را نصب کنه و برنامه بیاد از یک لینک تصاویرو دانلود کنه و در پوشه مشخصی قرار بده
سلام
منظورتون اینه که به جای تعریف فایلها توسط کاربر، کدتون اتوماتیک اون رو از یه آدرس دریافت کنه؟ اگر آره، میتونید چنین کاری بکنید. باید فایل رو با پایتون دانلود کنید و در مسیر مورد نظرتون قرار بدید.
یه روش ساده دانلود، استفاده از ماژول requests هست. مستندات خوبی داره؛ با این حال سعی میکنیم به زودی یه آموزش براش منتشر کنیم.
ممنون،فقط اینکه من میخوام چند تا فایل txt را در وب سایتی برای ساخت لینک دانلود و وارد کردن ادرسش برای requests قرار بدم و مجبورم که فایلو به حالت zip در بیارم حالا توی open کردن فایل چجوری بگم که مثلا برو فایل test.zip را باز کن و بعد test.txt را انتخاب کن؟(test.zip توی همانجایی که سورس قرار گرفته ذخیره شده و دورنش فایلی که میخوام هست.)
برای کار با فایل zip در پایتون میتونید از ماژول zipfile کمک بگیرید. کدهای نمونهاش در مستندات پایتون یا سایتهای کد خارجی و تقریباً شبیه به همین آموزشه.
درود
اگر دوست دارید درمورد روشهای ساده و کاربردی دانلود بیشتر یاد بگیرید، آموزش دانلود فایل با پایتون رو مشاهده کنید.
سلام به تیم پشتیبانی عزیز
من میخوام از کاربر که ورودی گرفته میشه با w+ بیاد در فایل بنویسه متن را و ذخیرش کنه و بعد از اجرا شدن مجدد برنامه بیاد فایل را بخوانه که اخرین نوشته کاربر بوده و با پرینت نمایش بده.اما وقتی که نوشته ذخیره میشه بعد خواندن فایل خالیه انگار ذخیره نشده.ایا برداشتم درست بوده از مطالب که با w میشه بدون ساختن دستی،یک فایل txt ساخت؟
سلام
وقتی داخل فایل مینویسید اون رو close هم میکنید؟ یا اینکه بعد از نوشتن مستقیماً میخواید ازش بخونید؟ در حالت دوم امکانش نیست و باید مقدار موردنیازتون رو داخل یه متغیر نگه دارید.
اگه حالت دیگهای هست بگید تا بتونیم بیشتر راهنماییتون کنیم.
خیلی ممنونم مشکلم حل شد
سلام من یک دکمه ساختم که با کلیک روی ان با matplotlib یک نمودار را توی پنجره رسم کنم مثال کد زیر:
وقتی که دکمه را بزنم یک پنجره دیگه باز میشه و توی ان نمودار نشان داده میشه با چه دستوری میتونم کاری کنم که مستقیما توی پنجره اول به نمایش در بیاد
سلام؛ جایی که
plt.show()
رو صدا میزنید پنجره جدید باز میشه؟احتمال میدیم matplot خودش یک پنجره جدید رو باز میکنه چون بهنظر شما پنجره جدیدی ایجاد نکردید. پینشنهاد میکنیم داخل مستندات متد
show()
نگاه کنید که آیا پارامتر یا تنظیماتی داره که نمودار رو بهجای پنجره خودش، در محل دلخواهتون نمایش بده یا نه.سلام من یه فایل اکسل دارم که می خوام در پایتون اونو بخونم اما خطا می گیرم
pd.read_excel
در داخل پرانتز باید مسیر فایل اکسل رو چطور بدم ؟
سلام
در آموزش کار با اکسل در پایتون چند روش مختلف رو برای خوندن excel بررسی کردیم که میتونید با مثال روند کارش رو ببینید.
سلام وقتتون بخیر
دوتا سوال داشتم اول اینکه مثلا ما فایل txt ساختیم و روی دسکتاپ ذخیره کردیم آدرس این رو چطوری به تابع fopen بدیم
سوال دوم اینکه مثلا ما یک فایل را با کمک fopen ساختیم این فایل کجا ذخیره میشه که بتونیم بهش دسترسی داشته باشیم همچنین دفه های بعد به این فایل چطوری دسترسی داشته باشیم؟
خیلی ممنون
سلام
بستگی داره کدتون رو در کجا اجرا میکنید؟
در کل دو نوع آدرسدهی داریم. نسبی و مطلق. در نسبی آدرس فایل رو نسبت به موقعیت کدها میدید (مشابه اکثر کدهای همین آموزش که فایل در کنار کد هست) در مطلق، آدرس کامل فایل رو میدید. (مثلاً
D:\\files\\test.txt
)واقعا ممنونم از پاسخ دهیتون من مشکلم این بود که با یک بک اسلش آدرس دهی میکردم چرا باید دوتا بک اسلش بزاریم؟
خوشحالم که مشکلتون حل شد. 🙂
فقط توی ویندوز اگر بخوایم از
\
در مسیر (path) فایل استفاده کنیم باید دوبار تکرارش کنیم. اما هم در لینوکس و هم ویندوز میتونیم از/
(همون slash) استفاده کنیم.سلام
من یه برنامه نوشتم که یه ورودی از کاربر میگیره و اون رو داخل یک فایل با نام banner.txt در مسیر مشخصی ذخیره میکند.
اما وقتی از برنامه خروجی exe میگیرم و برنامه اجرا میکنم ارور زیر را دریافت میکنم
سلام
اینطور که از خطا مشخص هست، ظاهراً برنامه دسترسی برای ساخت فایل در مسیر مورد نظر رو نداره. میتونید اون رو as Administrator اجرا کنید تا مسیر ذخیرهسازی فایل رو تغییراتی بدید.
سلام
اگر بخوام مثلا توی یک فایل txt که ۲۰۰ خط دیتا داره به برنامه بگم این دویست خط رو چک کن اگر یکی برابر با مثلا mahdi بود بعد بیا فلان کار رو بکن . باید چطور تعریفش کنم ؟
سلام
میتونید از متد
readlines()
استفاده کنید. حالا یک لیست دارید و با شرط'mahdi' in lines
کاری که میخواید انجام میشه.فرض کنید nبردار متمایز با بعد dبه همراه یک خروجی برای هر یک از این n بردار به عنوان داده های معلوم مشخص شده است .با استفاده از یکی از روشهای یادگیری از این داده ها استفاده کنید و یک سیستم پیش بینی برای ورودی دلخواه با بعد dطراحی کنید ( پیاده سازی را با داده های دلخواه در پایتون انجام دهید )
سلام
الآن مشکلتون کجاست؟ اگه دادهها در فایل هست و میخواید بخونید با همین
open()
و آموزشهای جلسه کار با رشته میتونید این کار رو انجام بدید.اگه در اکسل یا csv هست پیشنهاد میکنم از آموزشهای همین فرمتها که در سایت منتشر شده استفاده کنید تا راحتتر باشید.
سلام
من یک فایل تکست دارم که داره ازیه قسمت برنامم یه داده های رو از رجیستری میخونه.وقتی میخام اینا رو نمایش بدم به صورت یک خط پشت سرهم نشونش میده و صفحه ایی که من با tkinter ساختم رو به اصطلاح deface میکنه .
حالا میخاستم این فایل تکست قبل از استفاده سطر بندی بشه مثلاً بعد از هر 100 کارکتر یک
/n
بشینه که بره سط بعد..چطور میشه اینکا رو کرد؟
سلام
همینطور که گفتید، باید کاراکتر
/n
(برای ویندوز) قرار بدید. میتونید ابتدا محتوای فایل رو بخونید؛ بعدش با روشهای کار با رشته اون رو n کاراکتر جدا کنید و توی یک لیست قرار بدید.برای اتصال دوباره اینها هم از
'\n'.join()
استفاده کنید و داخل فایل ذخیره کنید.سلام خیلی ممنون از آموزش های خوبتون
ببخشید یک سوال دارم چطوری یک فایل با پسوند exe رو باز و استفاده کنم؟
سلام
منظورتون اینه که برنامه رو اجرا کنید؟
اگه آره، میتونید از متد
startfile()
در ماژول os استفاده کنید.منظورم اینه که برنامه رو توی یک برنامه ی دیگه بریزم و بگم هر وقت این دکمه زده شد برنامه اجرابشه
برای اینکه دکمه رو بزنید و برنامه اجرا بشه از همین تابع startfile میتونید استفاده کنید. به عنوان ورودی باید مسیر فایل exe رو که میخواید اجرا بشه بدید.
ممنون
سلام خسته نباشید
یک سوال دارم اینکه چجوری میتونیم ما اتفاق هایی که در یک پنجره رخ میده حالا تصور کنید با کلیک روی یک دکمه یدونه لیبل ساخته میشه که ما میتونیم نوشتشو تغییر بدیم….حالا یجوری این اطلاعات،این لیبل ها ذخیره بشه و بار بعدی که سورس اجرا شد بیاد و ان فایل ذخیره شده را خودکار اجرا کنه و دوباره از اول همچی شروع نشه.
سلام
میتونید این اطلاعات رو با یه ساختاری داخل فایل نگهداری کنید. در ابتدای اجرای برنامه، این تنظیمات رو از فایل بخونید و ایجادشون کنید.
برای آپدیتش، هم میتونید موقع بسته شدن برنامه انجام بدید و هم لحظهای که یه دیتا تغییر میکنه.
البته اگه دیتابیس دارید، استفاده از دیتابیس هم خوبه.
سلام میشه یکم بیشتر بهم بگی که دقیقا باید چیکار کنم الان مثالی که زدم گفتم با کلیک روی دکمه تابع باز میشه و لیبل ساخته میشه چجوری باید نوشته بشه در فایل؟و فایل پسوند باید py باشه یا txt برای اجرا هم از دستور open استفاده کنم؟
فرض کن شما میخوای بدونی لیبل دکمه 1 برابر test هست. این رو با یه ساختار دلخواه (مثلا 1:test) توی فایل ذخیره کنید. بین اینها یک جداکننده دیگه (مثلاً -) بذارید.
حالا وقتی میخواید تنظیمات رو بخونین، اینها رو با
split()
که توی جلسه کار با رشتهها معرفی کردیم جدا و مقداردهی کنید.برای آپدیت کردن وضعیت میتونید از یه تابع استفاده کنید که هر بار لیبل رو تغییر دادید، اون تابع اجرا بشه و تنظیمات رو آپدیت کنه.
فایل متنی اوکیه. موفق باشید.
سلام خسته نباشید
میخوام که یک فایل با فرمت mp3 را به پنجره ساخته شده با تی کی اینتر اضافه کنم یک سوال داشتم اینکه از چه دستوری باید استفاده بشه؟از winsound,tksnack,playsound,…
استفاده کردم دو ماژول win sound,tksnack را که اصلا نشناخت و یکم سعی کردم که ببینم اگر جدا هست در ترمینال دانلودش کنم ولی نشد که نشد.
سلام
تجربهای برای این کار نداریم. جستجویی کردم و به ماژولهای mp3play و
mixer.music
در ماژول pygame رسیدم. این دو تا رو هم تست کنید ایشالا که به نتیجه برسی.سلام خسته نباشید
یک سوال دارم اینه که من یک فایل را (تصویر) به یک لیبل اضافه کردم اگر اشتباه نکنم از ttk هم استفاده کردم حالا چجوری میتونم اندازه ان تصویر را تغییر بدم؟خود تصویر 2048×2048 هست میخوام در پنجره با اندازه ۱۰۰۰در ۱۰۰۰ قرار بدم و خب قاعدتاً خیلی کوچیکه اگرم بخوام اندازه پنجره را بیشتر از این کنم برای کاری که میخوام انجام بدم مشکل پیش میاد.
سلام
باید داخل مستندات اون object که تصویر رو باهاش نمایش میدید جستجو کنید ببینید متدی برای این کار داره یا نه.
من زیاد با این مورد کار نکردم. جستجوی کوچکی کردم و ظاهراً متدی به نام
resize()
برای تصاویر در tkinter هست؛ بهتره مستنداتش رو بیشتر بررسی کنید.سلام به تیم سبز دانش
من یک سوالی که برام پیش اومده اینه که من اگر که بخوام یک عکس را اضافه کنم حالا چه به یک دکمه یا یک پنجره اون عکس باید در کجا قرار بگیره؟باید در پوشه ای که سورس ذخیره شده باشه؟
سلام
شما میتونید آدرس فایل در پایتون رو به صورت دقیق یا نسبی بدید.
اگر عکس یا هر فایل دیگهای همراه با کدتون منتقل میشه، میتونید آدرس رو نسبی (relative) بدید. (مثل آموزش) میتونید مثلاً به کاربرتون بگید این فایلها رو در یه مسیر خاصی از سیستم بذاره و شما از اونها استفاده کنید؛ مثل فایلهای سیستمی dll ویندوز.
اگه فایلها مربوط به برنامه خودتون هست، پیشنهاد میکنم همراه کد قرارشون بدید.
سلام. ممنون از آموزش خوب و مفیدتون. فقط می خواستم بپرسم چطوری فایل رو تغییر بدیم ؟ مثلا تو خط اول نوشته شده باشه Hello World، چطوری تغییرش بدیم به مثلا goodbye world ؟
سلام
سادهترین راه، خوندن محتویات فایل، تغییر اونها در برنامه و بازنویسی فایل با دادههای جدید هست.
اگه محل عبارت (مثلا ابتدای خط اول) رو بدونید، با
seek(0)
میتونید به موقعیت برید و با کمی خلاقیت، دادهها رو تغییر بدید. (به جای 0 موقعیت مورد نظرتون رو بذارید.)سلام میدونم سوالم بی ربطه به این موضوع ولی اینکه اگر من بخوام در تکینتر یک دکمه بسازم چجوری میتونم بدون اضافه عکس و….. دکمه را به شکل دایره یا هرچیزی به غیر مستطیل و مکعب در بیارم؟ دوم ایا میشه همزمان از canvas برای شکل دهی به دکمه استفاده کرد؟اگر میشه چطور.
سلام
متأسفانه ما تجربهای در این مورد نداریم. جستجوی کوچکی هم شد ولی نتیجه دقیقی نداشت.
سلام خسته نباشید
این آموزش بسیار عالی بود
سلام دوستان
یه فایل دارم که شامل کارکتر های چینی هست ولی پایتون نمیتونه بخوندش. از چه decode بایستی استفاده کنم که بتونه بخوندش
سلام
یونیکد utf-8 رو تست کنید؛ احتمال خیلی زیاد کار میکنه.
سلام. من یک دیتاست با پسوند csvدارم که از تعداد زیادی سطر تشکیل شده و فقط یک ستون ان شامل محتوای متنی است که برای هر سطر متفاوته حالا من میخوام تعداد رخداد کلمات و پیدا کنم برای هر کلمه در کل ان ستون و بصورت یک دیکشنری دربیارم. باید چکار کنم؟
سلام
برای کار با csv کتابخونهای به همین نام وجود داره. همچنین میتونید از کتابخونههایی مثل pandas (متد
read_csv()
) هم استفاده کنید. (ببینید: آموزش کار با csv در پایتون)شما ردیفهای این ستون رو بخونید و داخل لیست قرارش بدید، میتونید تعداد تکرارشون رو به سادگی محاسبه کنید. پیشنهاد میکنم حتماً جلسات لیست و دیکشنری رو در آموزش رایگانمون ببیند.
سلام ممنون. ولی من سوالم این هست که در هر سطر فایل یکسری جمله هست که هر سطر با بقیه فرق داره و من میخوام تعداد کلمات و شمارش کنم مثلا کلمه پایتون در جمله ای در سطر اول امده حالا تعداد کل این کلمه که در کل فایل امده رو میخوام مشخص کنم به همین ترتیب برای کل کلمات فایل در سطرها
قسمت دوم پاسخ قبلی اشارهای به راهحل کلی داشتم. بهتره همه جملات رو از فایل در پایتون بخونید و در یک لیست قرار بدید. هر عضو این لیست یک کلمه باشه. مثلا اگر تکرار در کل خطوط مد نظرتون هست، فقط همه کلمات رو اضافه کنید. اما اگر در هر خط هم نیاز دارید، به صورت تودرتو تعریف کنید.
حالا به راحتی میتونید تعداد حضور هر کلمه در لیست رو بررسی کنید. (با حلقه یا متد
count()
روی لیست) البته دقت کنید که باید علائمی مثل نقطه و ویرگول و … رو در ابتدا حذف کنید.سلام من وقتی می خوام با دستور
open()
یک فایل txt ارور میده چه کار کنم ؟سلام. چه اروری میده؟ متن خطا رو ارسال کنید تا بتونیم راهنماییتون کنیم.
سلام چطوری میتونم اکسل رو توی فرمت قابل قبول به کتابخانه بهش بدم آموزشی که دارم میبینم بااین ماژول xlrd میباشد واینکه اکسل من ۲۰۱۳ میباشد خواهش میکنم راهنمایی کنید
سلام
با نسخه 1.2 ماژول xlrd برای کار با فایل اکسل کار کردم؛ تا جایی که یادم میاد، نسخه 2 یکم متفاوتتر شده بود! با ورژن قدیمیتر هم تست کنید.
اکسل رو با فرمت
.xlrd
ذخیره کنید و با تابعopen_workbook()
از این کتابخونه بازش کنید.با سلام، من می خواهم علاوه بر نوشتن یک رشته در فایل txt، مقدار یک متغیر در فایل txt نوشته شود. برای این منظور باید چه کار کرد؟
سلام
شما باید این متغیر و مقدارش رو با یک ساختاری (که به دلخواه خودتون ایجاد میشه) در فایل ذخیره کنید. (مثلا
x:5
) بعد میتونید به کمک تابعsplit()
اینها رو جدا کنید و مقدارش رو به متغیر مورد نظر انتساب بدید.سلام jupyter lab برای من اجرانمیشه من اونوبا conda نصب کردم البته اینم بگم آناکوندا ۳رونصب کردم jupyter notebook واسم به خوبی اجرامیشه وکدنویسی میکنم اما lab رونصب کردم حالا نمیدونم کامل نصب نمیشه مشکلش چیه داخل کروم که میره بازنمیشه
راهنمایی کنید مرسی
سلام
اگر به درستی نصب شده باشه jupyter-lab رو توی ترمینال بزنید باز میشه.
وقتی وارد مرورگر میشه خطای خاصی بهتون میده؟
خطا نمیده اما محیط کدنویسی اصلا بازنمیشه وصفحه سفید میمونه اما jupyter notebook به خوبی اجرامیشه
بنظرتون چکاربایدبکنم؟
صفحه مرورگر سفید هست یا مثل این میمونه که اینترنت ندارید و سایت باز نمیشه؟
یک بار حذف و مجدد نصب کنید. اگر نشد، نصب از طریق pip رو هم یک تست بکنید. آموزشش توی مستندات ژوپیتر هست.
سلام من زمانی ک میخوام یک فایل رو باز کنم مثل داستان emma.txt با پیغام خطا مواجه میشم ک مسیر دیکشنری پیدا نمیشه . این فایل را در کجا باید قرار بدم ک پایتون بتونه اون را پیدا کنه و باز کنه ؟ ممنون میشم جواب بدید
سلام
فایل رو در کجا قرار میدید و برنامه پایتون رو کجا اجرا میکنید؟
آموزش اجرای python رو ببینید و یک فایل از کدها ایجاد کنید. برای باز کردن فایل در پایتون مسیر نسبی txt رو از کنار کدها به برنامه بدید.
سلام عالی بود مرسی فقط اگه میشه کار با ویژوال استودیو کد هم توضیح دهید
سلام. بخش خاصی از vscode منظورتون هست یا کلا در مورد این ویرایشگر آموزش بذاریم؟
سلام کلا بزارید ممنون
سلام من نمیتونم فایل لوکیشن رو در پایتون پیدا کنم همش ارور not found میده
سلام. منظورتون از فایل لوکیشن چیه؟ یعنی فایل رو پیدا نمیکنه؟ یه بار سعی کنید فایلی در کنار کد پایتون (فایل
.py
) رو باز کنید ببینید همچنان مشکل دارید یا نه؟خیلی ممنون حل شد
میشه توضیح بدین چجوری حل شد من همین مشکلو دارمو موفق به حلش نشدم
فایل کد پایتون رو با فایل مورد نظر در یک مسیر قرار میدید؟ یکم درمورد ساختار کد و فایل مورد نظر توضیح بدید شاید بهتر بتونیم راهنماییتون کنیم.
جای اون path باید مسیرو بنویسیم و نمیدونم چجوری باید مسیر دهی کنم هر کاری میکنم درست در نمیاد حتی ادرسی که خوده ویندوز تعریف میکردو نوشتم باز هم پیدا نکرد
مشابه آموزش اجرای پایتون، پایتون رو از طریق cmd در کنار فایل اجرا کنید یا کدها رو توی فایل
.py
قرار بدید و آدرس رو نسبت به محل کدها وارد کنید مشکلتون برطرف میشه.من فایل اکسل ساختم ومیخواستم بخونمش داخل اسپایدر(پایتون۳)چنین اروری میده
Excel xlsx file ;not supported
چکاربایدبکنیم لطفا راهنمایی کنید
کتابخونهای که برای خوندن فایل اکسل استفاده میکنید از فرمت xlsx پشتیبانی نمیکنه. یا اکسل رو در فرمت قابل قبول کتابخونه بهش بدید یا از کتابخانه دیگری استفاده کنید.
سلام ممنون اوکی شده باpandas فقط من راستش آموزشی که دارم میبینم با xlrd هستش ولی به هرشکل با pandas دارم کارمیکنم فط نمیتونم سطروستون روباهم بخونم مثلا توی xlrd بادستور sh.cell_value انجام میشه اینجا چیه؟
سلام
منظورتون رو از خوندن همزمان سطر و ستون در pandas متوجه نمیشم! وقتی کار آماری قراره روی داده انجام بشه معمولا دیتاها رو ستونی میخونیم؛ مثل
dataset['attr']
برای اینکه همه مقادیر این ستون رو (با همون ترتیب) از فایل بخونید و در لیست بریزید از
dataset['attr'].values
استفاده کنید.منظورم اینه که مثلا چطوری مختصات تعریف کنیم یعنی مثلا نقطه (۱،۱)روبرامون نمایش بده که داخل اکسلی که نوشتیم یه عددی یاعبارتی دراین مختصات وجود داره ومنظورتون از’attr’ اسم فایل هستش؟
منظورم از attr نام ستون در فایل اکسل دیتاست هست؛ مثلا ستون Gender.
برای دسترسی به مقدار ستون Gender از ردیف 5 دستور
dataset.loc[5,'Gender']
رو استفاده کنید.ممنون از سایت خوبتون
ببخشید اگه سوالی داشته باشیم چن روز طول میکشه که جواب داده بشه؟
معمولاً سعی میکنیم کمتر از یک روز پاسخ شما عزیزان رو بدیم. البته اگه سؤالتون خیلی سخت نباشه 😉
ممنونم
سلام خسته نباشید مثل همیشه عالی
ببخشید یک سوال داشتم من کدی نوشتم که وقتی اجرا میشه یک اسکرین شات از صفحه میگیره و همون مسیری که کد اجرا شده ذخیرش میکنه میخواستم بدونم میشه وقتی کد اجرا شد تو یک مسیر دیگه مثل درایو سی عملیات رو انجام بده و اونجا اسکرین شاتو ذخیره کنه ؟با پایتون 3 کار میکنم تشکر
سلام. بله امکانش رو دارید قطعا. باید بررسی کنید در کتابخونهای که برای گرفتن اسکرین شات استفاده میکنید چطور میشه مسیر (path) فایل رو مشخص کرد.
اگر چنین آپشنی نداشت میتونید با دستور
shutil.move()
هم فایل رو با پایتون منتقل کنید.سلام وقتتون بخیر ببخشید من یه کدی میخام که یک فایل تکست رو سطربه سطر و ستون به ستون بخونه خیلی ممنون
سلام
برای خوندن سطر به سطر از تابع
readline()
میتونید استفاده کنید. برای ستون به ستون، باید هر سطر رو با یک جداکننده تفکیک کنید. کارکرد تابعsplit()
در رشته پایتون رو بررسی کنید.سلام
فایل txt و py رو در یک محل ذخیره میکنم.اما وقتی که میخوام به وسیله کد زیر اون رو بخونم،اررور داده میشه
ممنون میشم راهنمایی کنید
سلام
کدی که نوشتید صحیح هست. این خطا به این معنی است که فایل وجود نداره! فولدر رو جابجا کنید یا به درایور دیگری ببرید، ممکنه مشکل سطح دسترسی داشته باشید و اینطور حل بشه.
سلام من میخوام برنامه بنویسم که فایل با درخواست کلاینت در سرور ایجاد بشه و یا با درخواست باز کردن فایل در کلاینت باز بشه
میشه راهنمایی کنید
همچنین میخوام با grpc یا xml_rpc برنامه نویسی rpcدر پایتون انجام بدم
میشه راهنمایی به ایمیلم بفرستید
سلام
برای ارتباط با سرور روشهای مختلفی دارید. یکی اینکه سمت سرور چیزی شبیه به API ایجاد کنید و اون رو از سمت کلاینت فراخوانی کنید.
یا در سطوح پایینتر شبکه، میتونید از سوکت نویسی در پایتون استفاده کنید.
متأسفانه با rpc کار نکردم. کتابخونهای به نام
xmlrpc
هست که احتمالا مستنداتش بتونه کمکتون کنه.موفق باشید.
سلام
خیلی ممنون از مطالب مفیدتون
بسیار عالی 🙂
تارای عزیز خوشحالم که برای یادگیریتون تلاش میکنید و با پیامتون به ما انرژی میدید.
سلام ممنون از سایت عالیتون
من یه مشکل دارم
مثلا چجوری میشه با پایتون برنامه هایی مثل فایرفاکس یا کروم و اینجور چیزارو باز کرد ؟
مثلا یه کد بنویسی اون برنامه دلخواهت ( مثل مرورگر فایرفاکس ) رو واست اجرا کنه
سلام
این مورد مرتبط با کار با فایلها نیست. صرفاً باید به سیستم عامل درخواست بدید که برنامه رو باز کنه. به کمک کتابخونه os که پیشفرض نصبه میتونید این کار رو انجام بدید:
سلام وقتتون بخیر
چطور میتونم در پایتون کدی بنویسم که دو فایل پی دی اف را با هم ادغام کنم؟
سلام برنامه برای این کار یکم طولانی و خارج از بحث دیدگاه هست. البته من هم تجربهای در کار با فایل pdf در پایتون ندارم!
طبق جستجویی که داشتم، میتونید از کتابخانه pypdf استفاده کنید. عبارت python pdf merge رو سرچ کنید به کدهای آماده مختلفی هم میرسید که ایدههای خوبی بهتون میده.
سلام چطور باید کدی بنویسم که پس از اتمام کار فایل پایتون توسط خودش به طور اتومات پاک بشه؟
سلام؛ ایده مشخصی برای پاک کردن خود فایل ندارم! اما شاید با ایجاد یه نخ یا پردازش جدید با پایتون بتونید تلاش کنید بعد از پایان اجرای برنامه فایل حذف بشه.
و اینکه اگه من بخوام کاربر به من یک واژه بده و من اینو در قالب فایل txt ذخیره کنم بعدش هر بار وارد برنامه من میشه این واژه رو بگیرم خلاصه چجوری یک پسوورد برای برناممم بزنم
از نظر الگوریتمی که همین کاری که گفتید باید انجام بشه، یعنی رمز رو داخل فایلی ذخیره کنید و موقع شروع برنامه، مشابه آموزش گرفتن ورودی پایتون رمز رو بگیرید و با مقدار ذخیره شده تطابق بدید.
البته این یه روش ساده و اولیه هست. میتونید اون رمز رو در دیتابیس ذخیره کنید و یا برای نگهداری رمز، از روشهای رمزنگاری استفاده کنید.
سلام سایتتون عالیه ولی من توی حذف فایل با ارور SyntaxError: (unicode error) ‘unicodeescape’ codec can’t decode bytes in position 2-3: truncated \UXXXXXXXX escape
مواجه شدم چطور حلش کنم کدی هم که زدم
سلام
خطای unicode error در اینجا به این خاطره که مسیر فایل به شکل یک رشته معمولی وارد شده!
چند تا راهکار هست. دو تا رو پیشنهاد میکنم: یا قبل از همین رشته متنی حرف r رو قرار بدید. یا
\
ها رو با/
جایگزین کنید.بسیار زیاد عالی پیشرفته وساده بیان کرده بودی
خوشحالم که براتون مفید بوده و ممنون بابت انرژی خوبتون!
خیلی عالی بود به بهترین نوع توضیح داده شده بود
ماهان عزیز، خیلی خوشحالم که این آموزش براتون مفید بوده! موفق باشید.
سلام و باتشکر از مطلب مفیدتون
من یک برنامه ای نوشتم که تعدادی عدد رو از کاربر دریافت میکنه و در انتها اونها رو print میکنه
حالا اگه بخوام نمایش اخرش رو در یک فایل txt هم ذخیره کنه باید چیکار کنم؟
سلام
مطابق همین آموزش بخش نوشتن فایل در پایتون پیش برید میتونید یک فایل txt ایجاد کنید و یکیا چند خط داخلش بنویسید.
سلام من می خواستم یه برنامه بنویسم که اول که باز شد یه فایل txt ایجاد کنه بعد ببینه خالیه یا نه اگه خالی نبود و نوشته ای توش بود که هیچ بگه سلام “اسم کاربر” و گرنه بگه اسمت چیه؟
بعدش کاربر هرچیزی که وارد کرد برنامه اسم کاربر رو درون فایل TXT بذاره
اگه کاربر دوباره اومد برنامه بررسی کنه ببینه فایل txt ایا خالیه یا چیزی توش هست
اگه توش چیزی بود از اون به عنوان اسم کاربر استفاده کنه
مشکل من فقط اینجاست که چطور یه شرط بنویسم که بررسی کنه آیا فایل txt ما خالی هست یا نه
اگه راهنمایی کنید ممنون میشم
سلام اگر در حد خالی بودن فایل نیازتون میشه، میتونید از تابع
os.path.getsize()
استفاده کنید که به عنوان ورودی نام یا مسیر فایل رو میگیره و حجم اون رو برمیگردونه. اگر فایل متنی که با پایتون ساختید خالی باشه، حجمش 0 هست.سلام بابت مطلبتون ممنون
چطور میتونم کدی بنویسم که اگر حجم فایل تکستم به مثلا، بالای 5مگ رسید اتومات فایل جدید دیگه باز بشه و داده ها در اون ذخیره بشه و این کار ادامه دار باشه تا جایی تا اتمام کار، فایل با حجم بالای 5 مگ نداشته باشم ممنون میشم راهنماییم کنید.
سلام؛ دو تا راهحل به ذهنم میرسه برای این کار:
متد
tell()
که روی شئ فایل در پایتون صدا زده میشه، موقعیت قرارگیری توی فایل رو مشخص میکنه. مثلاً در هنگام خواندن فایل بعد از خوندن 5 کاراکتر، عدد 5 رو میده. در نتیجه موقع نوشتن، تعداد بایتهایی که تا الآن نوشته شده رو میده. پس با یه عبارت شرطی در پایتون میتونید حجم فایل به بایت رو بررسی کنید.راهحل دیگه اینه که فایل رو ذخیره کنید و به کمک تابع
os.stat()
حجمش رو بررسی کنید.موفق باشید.
خیلی عالی بود کوتاه و مفید
سلام خسته نباشید
برای جمع زدن ستونی اعضای یک فایل چه جوری باید عمل کرد ممنون میشک راهنمایی کنید
سلام
یه راهکار ساده اینه که شما خط به خط فایل رو بخونید. با
split()
که در آموزش رشته متنی پایتون گفتیم عضو ستون مورد نظر رو بردارید و در یک لیست بریزید. در انتها شما یه لیست از ستون مورد نظر دارید. برای آشنایی با لیست هم میتونید به آموزش لیست در پایتون مراجعه کنید.با سلام خیلی مطالب تون خوب و دقیق هستند. دمتون گرم
سلام
خوشحالم که براتون مفید بوده و ممنون از انرژی خوبی که به ما میدید.
با سلام
ممنون از اموزش خوب و مفیدتون.
خوشحالم که براتون مفید بوده و ممنون بابت انرژی خوبی که بهمون میدید.
با سلام
من هر بار که کدی رو مینویسم و میخام اجرا کنم دوباره همون صفحه نوتپد رو برام باز میکنه و هیچ عملیاتی انجام نمیده
مشکل کار من کجاست؟
فقط تو قسمت کار با فایل مشکل دارم
سلام
در انتهای کارتون فایل رو با دستور
close()
میبندید؟ اگر فایل به درستی بسته نشه، تغییرات هم اعمال نمیشه!آقا من هر کاری می کنم نمی تونم هیچ فایلی رو باز کنم چیکار کنم؟
خطای خاصی دریافت میکنید؟
مطمئن بشید که فایل قابل خوندن باشه و اینکه برنامه پایتون اجازه در سطحی باشه که بتونه فایلها رو باز کنه یا بنویسه.
سلام.خیلی عالی بود.فقط اینکه درباره ی پارامتر سوم که اختیاری هست (buffering) میشه بگید چجوریه؟ممنون میشم
سلام
با فعال کردن بافر در باز کردن فایل پایتون، از API کار با فایل سیستم عامل تبعیت نمیکنیم! بلکه خودمون یک اندازه روی برای buffer مشخص میکنیم (مثلاً 10 بایت).
در ابتدا 10 بایت از فایل به حافظه اصلی RAM آورده میشه تا زمانی که مصرفش کنیم. سپس 10 بایت بعدی توی حافظه ریخته میشه تا زمانی که مصرف بشه و همینطور تا انتهای فایل.
معمولاً زمانی که مجبوریم با فایلی خارج از سیستم اصلی (مثل برنامهنویسی شبکه با پایتون یا اطلاعات روی دیسکهای قدیمی) که تأخیر زیادی دارند از بافر استفاده میکنیم.
سلام چگونه می توانم اجرای برنامه در اسپایدر پایتون را کنار خود برنامه بیارم؟
سلام
منظورتون رو درست متوجه نشدم! میخواید از ابزار
Spyder
استفاده کنید ؟!سلام
یک فایل
txt
ساختم و میخوام هر بار که تابعم اجرا میشه میخوام چک کنه اگر متن رو قبلا وارد تکست کرده بود دیگه اون متن رو وارد نکنه و ازش بگذره ؟با دستور if همچین کاری رو کردم اما ارور میده
از دوستان اگر کسی میتونه لطف کنه راهنمایی کنه
سلام
برای این کار شما میتونید با استفاده از تابع
readlines()
تمام خطوط فایلتون رو داخل لیست بریزید. سپس طبق فرمتی که دادهها رو قبلاً وارد کردید اونها رو تفکیک کنید تا در نهایت فقط نام کاربریها داخل لیست باقی بمونه.البته تمام این کارها در یک حلقهی for روی فایل هم قابل انجام هست.
حالا کدی مشابه چیری که نوشتید نتیجهی دلخواهتون رو میده؛ فقط لازمه که به جای متغیر user در شرط باید لیست رو قرار بدید.
برای کار با رشتهها هم میتونید آموزش رشته در پایتون رو مطالعه کنید.
موفق باشید.
کدام گزینه نادرست است ؟
الف) دستور read برای خواندن درفایل
ب) دستور print برای نوشتن در فایل استفاده میشود.
ج) دستور close برای بستن فایل
د) از دستور open برای باز کردن و ایجاد فایل استفاده میشود.
سلام؛ امتحانه ؟ 🙂
دستورات
read()
،close()
وopen()
رو داخل مقاله بررسی کردیم و گفتیم که برای کار با فایل در پایتون ازشون استفاده میشه.از دستور
print()
به طور مستقیم برای نوشتن در فایل استفاده نمیشه و باید برنامه رو به صورت خاصی اجرا کنید تا خروجیش در فایل ذخیره بشه.پس جوابتون میشه مورد دوم.
موفق باشید.
سلام من میخواهم بجای باز کردن فایل برای نوشتن یک پوشه (folder) باز کنه.
با حلقه for و متد
open()
و دستور'w'
کاری کردم ۱۰۰۰۰ فایل درست بشه اما من میخوام folder درست بشود.چه کار کنم ؟!
سلام محمد عزیز
برای ایجاد فولدر یا پوشه باید از کتابخونه
os
استفاده کنیم. یه متد داره به اسمmkdir()
که مسیر و نام پوشه به عنوان پارامتر ورودیش و به صورت رشته داده میشه.در قطعه کد بالا یک فولدر به نام myTest توی درایو
D
ایجاد کردم.موفق باشید.
سلام من میخواستم بعد از اجرا شرطم. مثلا برنامه خط فرمان پایتون باز بشه و داخل عبارتی رو بنویسه و خودکار enter بزنه
سلام
دقیقاً متوجه نشدم که میخواید چیکار کنید!
اگر منظورتون نوشتن در فایل با پایتون هست، برای رفتن به خط بعد میتونید انتهای رشته
\n
اضافه کنید.اگر هم میخواید آدرس فایل رو از کاربر بگیرید میتونید مقاله گرفتن ورودی در پایتون رو بخونید.
موفق باشید.
سلام مجدد
میخواستم مثلا ماشین حساب(یک برنامه سیستمی) باز بشه و یک مقداری که براش فرستادم رو نمایش بده
(واقعیتش عنوان پروژه ام اینکه :تشخصیص چهره میده و بعد درب رو باز میکنه (حالا واسه این کار باید یک سری دستورات بفرستم داخل پایتون شل)تا آردینو کلید رو وصل کنه)
سلام
من اطلاعی در این مورد ندارم.
شما باید سعی کنید یه نرمافزار باز کنید و مقادیری رو براش به عنوان ورودی تعریف کنید. برای این کار جستجو کردم و به کتابخونه
subprocessprogram
رسیدم. مطمئن نیستم که جوابتون رو بده ولی توی مستنداتش یه فایل.exe
را با پارامترهای دلخواه اجرا کرده. با جستجوی همین نام، مستنداتش رو در سایت پایتون بخونید.موفق باشید.
چطور می تونم در پایتون بگم زمانی که این برنامه باز شد برای مثال فایرفاکس باز شد برنامه ای که با پایتون نوشتم شروع به کار کن
همچنین ممنون از مطالبه تون
سلام
متاسفانه اطلاعی در این باره ندارم و نتونستم اطلاعات مفیدی براتون به درست بیارم.
اما احتمالاً بتونید یک
listener
روی پردازش (process
) برنامه مورد نظرتون قرار بدید که هر وقت پردازشی با مشخصات مورد نظرتون اجرا شد برنامه شما هم اجرا بشهامیدوارم یک جرقه برای شروع کار ایجاد شده باشه 😉
موفق باشید.
سلام
من کد زیر رو اجرا میکنم ولی چرا تغییر تو فایل ایجاد نمیشه؟
ممنون میشم جواب بدید
سلام
در این کد شما اومدید محتوای فایل رو میخونید و درون متغیر
lines
میریزید. مجدداً همین محتوا رو داخل فایل وارد میکنید.یعنی همون دیتای قبلی رو دارید داخل فایل میریزید.
در خط سوم کدتون و با فراخوانی
write()
به جایlines
اطلاعات جدید رو وارد کنید.موفق باشید.
امید رجایی دمت گرم خیلی بیانت عالیه و قابل فهمه.
خوشحالم که این آموزشها میتونه مفید و قابل استفاده باشه 🙂
موفق باشید.
سلام من می خوام برای پروژه ام یک اپلیکیشن موزیک پلیر بسازم به طوری که مثل دیگر پلیرها از گزینه ی file سپس open فایلی رو از داخل کامپیوتر انتخاب کنم و پلیرم پخش کنه.
نه این که آدرسش رو در سورس کد برنامه کپی کنم.
اما هر چی تو اینترنت می گردم چیزی به این شکل پیدا نمی کنم. همه ی سایت ها مثل شما کار با file و خوندن و نوشتن فایل رو توضیح دادن.
میشه یه توضیح کوچولو بدید باید چیکار کنم یا لااقل یک منبعی چیزی معرفی کنید؟
خیلی ممنونم.
سلام
فایلها وقتی فرمت خاصی میگیرند یک نوع کدگذاری براشون انجام میشه؛ شما با خوندن فایل طبق
codec
های هر فرمت میتونید اون رو اجرا کنید.ولی اگر نمیخواید این کار رو از صفر انجام بدید، بهترین کار استفاده از کتابخونههایی هست که براتون این کار رو انجام دادند و امکانات پخش موزیک رو در اختیارتون قرار میدن.
در مورد کتابخونههای
mp3 player
یاmp3 reader
در پایتون جستجو کنید. داخل سایت اصلی پایتون و منابع خارجی، کتابخونههای مختلفی مثلmp3play
یاplaysound
و … رو پیدا میکنید.من تا به حال با اینها کار نکردم اما میتونید مستنداتشون رو بررسی کنید.
موفق باشید.
خیلی ممنونم😊
ببخشید من یه سوال داشتم میخواستم برنامه ای بنویسم که ورودی مسیر فایل رو بگیره اگه فایل وجود نداشت دوباره ورودی بگیره کد این رو چطور بدون ماژول بزنم؟
سلام
به کمک دستور
os.path.exists()
از ماژولos
میتونید این بررسی رو انجام بدید.ماژول
os
یک ماژول اضافه نیست و به همراه پایتون وجود داره، برای کارهای سیستمی. یعنی نمیخواد نگران سربار اضافی اون باشید، چون از خود امکانات پایتون هست.بعید میدونم بدون استفاده از ماژول خاصی بشه وجود یک فایل رو بررسی کرد.
مگر اینکه تلاش کنید فایل رو باز کنید و با مدیریت خطا (try و catch) خطای حاصل از وجود نداشتن فایل رو بگیرید و مدیریتش کنید. که کاری غیر حرفهای اما شدنی هست…
موفق باشید.
عالی بود
بسیار خوشحالیم که آموزش براتون کاربردی بوده…
موفق باشید.
با سلام و سپاس از وب سایت خوبتون
اگه بخواهیم محتوای فایل که همش عدد (شامل 100 عدد) رو داخل لیست ببریم از چه دستوری بایست استفاده کرد؟؟؟؟؟؟؟؟
سلام
من در نظر گرفتم که در هر خط از فایلتون یک عدد قراره داره و کد زیر این کار رو براتون انجام میده:
اگر در هر خط هم چند عدد دیگه داشتید، میتونید خط چهارم رو با کد زیر جایگزین کنید. اینطوری اعداد در هر خط که با فاصله از هم جدا شدند هم به درستی وارد لیست خواهند شد.
موفق باشید.
سلام میخواستم یک فایل که شامل نام ونام خانوادگی ونمره 5 درس هرفرد است را داخل لیست بریزم ومعدل بگیرم این کار با چه دستوری انجام میشه؟
سلام
دستور خاصی نداره! باید با توجه به ساختار فایلتون که این اسامی و نمرات چطور و با چه علائمی ذخیره شدند اطلاعات رو بیرون بکشید.
طبق آموزش از
readline()
استفاده کنید که خط به خط بخونه؛ بعدش در خط اعداد مشابه پاسخ بالا، اعداد رو جدا کنید.ممنون بسیار
خوشحالیم که براتون مفید بوده 🙂
سلام ممنون از اطلاعات مفیدتون . یه سوال دارم وقتی حجم داده بالا باسه و بخوام بخونم نمیخونه . کدی نیست که داده هارو خواناتر بخونه
سلام
خوشحالیم که مقاله براتون مفید بوده
در حالت کلی ذخیره و کار با داده های حجیم در فایل چندان اصولی نیست! سعی کنید دیتاهای حجیم رو در پایگاه های داده مناسب استفاده کنید.
اما گاهی اوقات نیاز داریم حتی برای یک بار با فایل حجیم کار کنیم، در هنگام کار با فایل، سیستم میبایست کل فایل را در حافظه موقت نگهداری کند؛ پس در وهله اول نیاز به رم مناسبی داریم.
در کل پیشنهاد میکنم فایل رو به بخشهای کوچکتری تقسیم بندی کنید و سپس پردازش رو روی چند فایل انجام بدید.
امیدوارم تونسته باشم راهنمایی لازم رو کرده باشم. اگر سوالی دارید، خوشحال میشم ازمون بپرسید.
موفق باشید.
چطور متن فایلی که اوپن کردیم رو تغییر بدیم؟
مثلا فایل اوپن شده coin = 50 باشه
و ما بخوایم تعداد مشخصی رو به اون وارد کنیم
و اینکه چطور در coin = 70 کلمه in = 7 رو وارد پروژه خودمون کنیم
سلام
به شما دو راه ساده برای این کار پیشنهاد میدم:
راه اول این هست که شما تک تک خطوط فایل رو بخونید و در هنگام خوندن هر خط، اگر تغییراتی نیاز دارید توی رشته مورد نظر اعمال کنید. این رشتهها (تمام خطوط پس از تغییر) رو در یک متغیر ذخیره کنید.
حالا میتونید فایل رو دوباره در حالت ویرایش باز کرده و دیتای جدید (متغیر حاوی رشتههای بعد از تغییر) رو درونش قرار بدید.
راه دوم اینه که شما همزمان با خوندن فایل اصلی، یک فایل جدید ایجاد کنید و هر خط جدید رو در فایل جدید بنویسید. اگر لازم شد، در انتها میتونید فایل اول رو حذف و نام فایل جدید رو به فایل قبلی تغییر بدید.
موفق باشید.
سلام وقتتون بخیر
فایل باید در چه مسیری باشه یا مسیر رو چطور مشخص کنم
ممنون
سلام
توی این مقاله ما متغیری به نم
file_name
داریم که مشخص کننده فایل هست.اگر فایل کنار برنامه پایتون (با فرمت
.py
) هست، میتونید آدرس نسبی بدید، یعنی صرفا اسم فایل بدون هیچ آدرس مشخصی!و اگر فایل در جای دیگه ای قرار داره میتونید آدرس رو مشابه آدرسهای سیستم عامل وارد کنید.
مثلا در ویندوز آدرسی شبیه
D:\projects\test.text
یک آدرس صحیح خواهد بود.موفق باشید
خیییلی ممنون
خیلی مفید و کامل بود 🙂
خوشحالیم که آموزشها مورد استفادتون بوده و مفید واقع شده!
موفق باشید