write - read text file python




كيف يمكنك إلحاق ملف؟ (6)

كيف يمكنك إلحاق الملف بدلاً من الكتابة فوقه؟ هل هناك وظيفة خاصة يتم إلحاقها بالملف؟


أنا دائما أفعل هذا ،

f = open('filename.txt', 'a')
f.write("stuff")
f.close()

انها بسيطة ، ولكنها مفيدة للغاية.


إليك نصّي ، الذي يحصي عدد الأسطر ، ثم يلحِّمها ، ثم يعيدها مرة أخرى حتى يكون لديك دليل يعمل.

shortPath  = "../file_to_be_appended"
short = open(shortPath, 'r')

## this counts how many line are originally in the file:
long_path = "../file_to_be_appended_to" 
long = open(long_path, 'r')
for i,l in enumerate(long): 
    pass
print "%s has %i lines initially" %(long_path,i)
long.close()

long = open(long_path, 'a') ## now open long file to append
l = True ## will be a line
c = 0 ## count the number of lines you write
while l: 
    try: 
        l = short.next() ## when you run out of lines, this breaks and the except statement is run
        c += 1
        long.write(l)

    except: 
        l = None
        long.close()
        print "Done!, wrote %s lines" %c 

## finally, count how many lines are left. 
long = open(long_path, 'r')
for i,l in enumerate(long): 
    pass
print "%s has %i lines after appending new lines" %(long_path, i)
long.close()

تكون وظيفة append_data_to_file() التي يمكن إلحاق البيانات بملف موجود كما يلي:

import os

def append_data_to_file(path, data):
    with open(path, 'a') as file:
        file.write(data+'\n')

ربما تريد تمرير "a" كوسيطة الوضع. انظر المستندات open() .

with open("foo", "a") as f:
    f.write("cool beans...")

هناك تباديل آخر لوسيطة الوضع لتحديث (+) ، والاقتطاع (w) ووضع ثنائي (b) لكن البدء فقط بـ "a" هو أفضل رهان.


لدى بايثون العديد من الاختلافات عن الأنماط الثلاثة الرئيسية ، وهذه الأنماط الثلاثة هي:

'w'   write text
'r'   read text
'a'   append text

لذا لإلحاق ملف ، فإن الأمر سهل مثل:

f = open('filename.txt', 'a') 
f.write('whatever you want to write here (in append mode) here.')

ثم هناك الأوضاع التي تجعل خطوطك البرمجية أقل:

'r+'  read + write text
'w+'  read + write text
'a+'  append + read text

وأخيرًا ، هناك طرق للقراءة / الكتابة بتنسيق ثنائي:

'rb'  read binary
'wb'  write binary
'ab'  append binary
'rb+' read + write binary
'wb+' read + write binary
'ab+' append + read binary

لنفترض أن لديك ملف biki.txt يحتوي على:

http://www.youtube.com/watch?v=6INqTUEnitkhttp://www.youtube.com/watch?v=6M6GT5xJhHohttp://www.youtube.com/watch?v=6q1SuHTqY0Ahttp://www.youtube.com/watch?v=6w2kORM6gvQ

لنفترض أنك تريد ذلك بتنسيق السطر الجديد وحفظه في ملف آخر ، على سبيل new.txt ، new.txt :

http://www.youtube.com/watch?v=6INqTUEnitk
http://www.youtube.com/watch?v=6M6GT5xJhHo
http://www.youtube.com/watch?v=6q1SuHTqY0A
http://www.youtube.com/watch?v=6w2kORM6gvQ

إليك كيفية القيام بذلك:

#!/usr/bin/env python
import re
import os
import sys
### Coding to arrange matching in new line
with open("biki.txt","r") as myfile:
    mydata = myfile.read()
    data = mydata.replace("http","%http")
    for m in range(1,1000): ## For loop is use here
       dat1 = data.split('%')[m] ## Contain of split file
       f = open("new.txt","a") ## file open in appending mode i.e 'a'
       f.write(dat1) ## writing the contain dat1  to new.txt
       f.close() ## File closing after writing.




append