اذهب إلى المحتوى
  • 0

مشكلة في كتابة List تحتوي اسماء المستخدمين على ملف نصي بلغة بايثون يظهر الخطأ myfile.write(Name_User) TypeError: write() argument must be str

Zeina Almakdisi

السؤال

مشكلة في كتابة List تحتوي اسماء المستخدمين على ملف نصي 

الكود التالي لتوضيح المشكلة 

Name_User = ["zeina" , "mary" , "majd","mario","elias"]
filee= open("D:\IT3\Project.txt", "w")
filee.write(Name_User)

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يوجد حل آخر، وهو استخدام الدالة writelines ونمرر لها قائمة list من السلاسل النصية مثلاً كمثالك وسوف تعمل بدون مشكلة.

f = open("hsoub.txt", "w")
f.writelines(["Welcome To Hsoub!", "Have Fun with learning."])
f.close()

f = open("hsoub.txt", "r")
print(f.read())           # Welcome To Hsoub!Have Fun with learning.
  • سوف لن تضع أي فراغ بين المخرجات.
  • في حال أردت فصل الأسطر نمرر n\ كمحرف سطر جديد
f.writelines(["\nWelcome To Hsoub!", "\nHave Fun with learning."])
              ^^^                     ^^

أو نستخدم Join لتنسيق دمج عناصر القائمة

' '.join(list)

or

'\n'.join(list)

أو يدوياً بالمرمر على القائمة بحلقة مثل ما أشار له سامح

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

التابع file.write يستقبل نص فقط كمدخل ليتم كتابته في الملف، ولا يمكنك تمرير قائمة list إليه بشكل مباشر، لذلك عليك تحويل قائمة المستخدمين إلى نص string أولًا قبل الكتابة في الملف، هنا مثال لكيفية تحقيق هذا الأمر:

users_str = ""	# سنقوم هنا بتخزين الأسماء معًا في شكل نص
Name_User = ["zeina", "mary", "majd", "mario", "elias"]

# نضع كل اسم في المتغير السابق ونضيف مسافة للتفريق بين الأسماء
for user in Name_User:
    users_str += user
    users_str += " "

# شكل محتوى المتغير users_str
print(users_str)  # zeina mary majd mario elias

filee = open("D:\IT3\Project.txt", "w")
filee.write(users_str)

تم ذكر عملية التحويل هذه في توثيق التابع write في موسوعة حسوب.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...