البايثون لا يقوم الا بحفظ اخر سطر الى ملف Text

السلام عليكم

أخواني اقوم بعمل كود بسيط بالبايثون ولكن عند تصدير الخرج الى ملف نصي لا يقوم الا بتصدير السطر الأخير من الخرج

طريقة التصدير التي استعملها

for p in range (nop):

password = ''
for l in range(lop):
   password += random.choice(ch)
print(password)
pwd = open("a.txt", "w")
pwd.write(password)
pwd.close()

waelaljamal أضف ردا

إن الدالة print مسؤولة عن الطباعة على الشاشة فقط.

أما للكتابة على ملف كما تقوم أنت بفتح قناة اتصال مع الملف عن طريق open ثم استخدام الدالة write.

سبب عدم حفظ التغيرات السابقة هو أنك تفتح الملف بنمط الكتابة w =writenوهذا يحذف كل شيئ من قبل.

استبدل الحرف w مع الحرف a الذي يعني append أي إضافة المعلومات الجديدة لما سبق و سوف يعمل كما تريد.

pwd = open("a.txt", "a")

ملاحظة: نمط الكابة a أو w ليس له علاقة بالدالة write.

في حال تريد إنشاء ملف استخدم نمط الكتابة x والذي يقوم بإنشاء ملف جديد (يعيد خطأ في حال وجود الملف)

جزاك الله كل خير تم حل المشكلة سأطرح الكود هنا بعد رفعه عبارة عن سكربت مولد كلمات مرور بسيط

السلام عليكم

اخوي عشان ما اطرح المشكلة في مشاركة مستقلة

انا استخدمت نفس الالية بكود ثاني لكن للاسف مايطبع الا اخر سطر

import hashlib

with open('strings.txt') as f:

for line in f:

    line = line.strip()

    print(f'{hashlib.md5(line.encode()).hexdigest()} ')

pwd = open("passwords.txt", "a")

pwd.write(str(f'{hashlib.md5(line.encode()).hexdigest()} '))

pwd.close()

أرجو مشاركة الملفات للاطلاع عليهم

YazeedOT أضف ردا

تم الحل الكود في الرابط في الاعلى