الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

قراءة من عدة ملفات وكتابة في ملف وحيد

بدأه fofo_last في 17 يوليو 2010 · 5 رد · 957 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

بدخل في موضوع طوالي

عندي مجلد يحتوي مجموعة ملفات تكست....وكل ملف فيه نص سطر

اريد عمل لووب لقراءة كل ملف وكل سطر في كل ملف وكتابته في ملف اخراج يضم كل النصوص

كودي بالاسفل...

فكرة..بدخل عدد من الفايلات واسمهم لانهم كلهم نفس الاسم بس بترقيم مختلف متل

test1.txt

test2.txt

test3.txt

.... الخ

تم داله للكتابة هدي الاسطر في ملف

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

مشكلة: انو بيكتبلي بس اخر ملف ومابيهتم بالملفات الاخرى السابقة يعني لو عندي تلات ملفات بيقرا وبيكتب اخر ملف رقم تلاته وبس

import os

''' this function to read multiple files '''
def filereader(num,filename):
     for i in num:
      ifile =open(filename+i+'.txt',"r")
      text = ifile.read()
      ifile.close()
      return text

''' this function for writting  '''
def filewriter (filename, text):
       file = open(filename ,'w')
       file.writelines(text)
       file.close()

def fileappender (filename, text):
    file = open(filename, 'a')
    file.writelines(text)
    file.close()

num=raw_input('Enter how many files you have:')
filename=raw_input('Enter name of  files which you have:')
text=filereader(num,filename)
filewriter ('get.txt', text)
fileappender ('get.txt', text)
#2
      text = ifile.read()

المفروض text يكون

text=""
text +=ifile.read()

لان من غير ال + هيتم اسناد قيمة المحتوى ل text بدل من الإضافة عليه

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#3

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

text0>>>
text1>>>t tkaatb O Z O bnaat
text2>>>aal mdrs t aan t ktb aan aal ktaab
text3>>>aal mdrs t aan O ktb taa

هدا كودي بعد التعديل كل شي فيه تمام يقرا مسار الملف تم ادخله المجلد الي فيه ملفاتي

بيقراهم ويخرجها في ملف وحيد

بس ليش او ملف مافيه نتايج؟؟؟

import os
def read(filename):
    ip=open(filename,'r')
    lines=ip.read()
    return lines
    ip.close()

def write(line,index):
     if index==0:
      op=open('outfile.txt','w')
      print 'line from text o =',line
      finaline='text'+str(index)+'>>>'+line
      op.write(finaline)
      op.close()
     else:
      op=open('outfile.txt','a')
      finaline='text'+str(index)+'>>>'+line
      op.write(finaline)
      op.close()


path=raw_input('enter your directory ,please :')
folder=raw_input('enter your folder ,please :')
#path=("C:\\htk\\bin.win32")  # insert the path to the directory of interest
List=os.listdir(path)
for fname in List:
    if fname==folder:
        print fname,'folder was founded'
        listfolder=os.listdir(folder)
        print  listfolder,'founded'
        for index, item in enumerate(listfolder):
         item = item.strip()
         print item,'item'
         print 'index',index
         result=read(item)
         print result
         write(result,index)
    else: pass
#4
import fileinput
from os import listdir

files=["d/"+f for f in listdir("d")]
for line in fileinput.input(files):
	print line,

حيث "d" هو مسار المجلد

ملحوظة:

*المسار مكتوب d/ مباشرة- نسبى- لأنه المجلد موجود فى نفس مسار السكربت

بالإضافة ان الفاصل فى نظامى هو ال /

فلإستخدام فاصل قياسى حسب النظام ممكن استخدم sep من os.path

>>> from os.path import sep

*للكتابة فى ملف ممكن مباشرة عمل redirect

[striky@localhost testout2]$ python cat.py > jout.x
[striky@localhost testout2]$ cat jout.x 
hello
hello
hello
hello
hello

او فتح ملف وكتابة السطر بدل عمل print

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 17 يوليو 2010 في 19:55

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#5

مشكلتي ليست في المسار وتحديده والا ماتم كتابه كل الاسطر من الملفات

مشكلتي مع الداله القراءة لانها لما تقرا اول ملف مابتعطيني الاسطر الي فيه ؟؟؟

اقتباس
def read(filename):

ip=open(filename,'r')

lines=ip.read()

return lines

ip.close()

والدليل انو لو سويت طباعه لمحتويات lines تطلع مع كل قراءة للملف الا الملف الاول مابيطلع ولاشي؟؟؟

اقتباس

text0>>>

text1>>>t tkaatb O Z O bnaat

text2>>>aal mdrs t aan t ktb aan aal ktaab

text3>>>aal mdrs t aan O ktb taa

اتمنى تكون فهمت علي؟

#6

uppppppppppppppppppppppppp

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…