जवाबों:
with open("test.txt", "a") as myfile:
myfile.write("appended text")
with open(file, "a")
विधि का उपयोग कर रहे हैं । मैं शायद पुराने जमाने का हूं, लेकिन फायदा क्या हैopen(file, "a") ... file.close()
print("appended text", file=myfile)
एक अधिक परिचित एपीआई के लिए भी संभव है।
open()
हार्डकोड नहीं है utf-8
। इसका उपयोग करता है locale.getpreferredencoding(False)
। encoding="utf-8"
यदि आप जानते हैं कि फ़ाइल utf-8 एन्कोडिंग का उपयोग करता है, तो पैरामीटर स्पष्ट रूप से पास करें ।
आपको मोड के रूप में "ए" या "एब" सेट करके फ़ाइल को एपेंड मोड में खोलना होगा। खुला देखें () ।
जब आप "ए" मोड के साथ खुलते हैं, तो लिखने की स्थिति हमेशा फ़ाइल (एक परिशिष्ट) के अंत में होगी । आप पढ़ने की अनुमति देने के लिए "ए +" के साथ खुल सकते हैं, पीछे की ओर और पढ़ने की तलाश कर सकते हैं (लेकिन सभी लिखते हैं फिर भी फ़ाइल के अंत में होगा!)।
उदाहरण:
>>> with open('test1','wb') as f:
f.write('test')
>>> with open('test1','ab') as f:
f.write('koko')
>>> with open('test1','rb') as f:
f.read()
'testkoko'
नोट : 'a' का उपयोग करना 'w' के साथ खोलने और फ़ाइल के अंत की मांग के समान नहीं है - विचार करें कि क्या हो सकता है यदि कोई अन्य फ़ाइल फ़ाइल को खोले और तलाश और लेखन के बीच लिखना शुरू कर दे। कुछ ऑपरेटिंग सिस्टम पर, फ़ाइल को 'ए' के साथ खोलना इस बात की गारंटी देता है कि आपके सभी निम्नलिखित लिखों को फ़ाइल के अंत में (यहां तक कि फ़ाइल अन्य राइट्स द्वारा बढ़ता है) के लिए एटमॉसी से जोड़ा जाएगा।
"A" मोड कैसे काम करता है ( केवल लिनक्स पर परीक्षण ) के बारे में कुछ और विवरण । यहां तक कि अगर आप वापस चाहते हैं, तो हर लेखन फ़ाइल के अंत में संलग्न होगा:
>>> f = open('test','a+') # Not using 'with' just to simplify the example REPL session
>>> f.write('hi')
>>> f.seek(0)
>>> f.read()
'hi'
>>> f.seek(0)
>>> f.write('bye') # Will still append despite the seek(0)!
>>> f.seek(0)
>>> f.read()
'hibye'
वास्तव में, fopen
मैनपेज बताता है:
एपेंड मोड में एक फाइल खोलने (मोड के पहले चरित्र के रूप में) इस धारा के बाद के सभी लेखन कार्यों को एंड-ऑफ-फ़ाइल में होने का कारण बनता है, जैसे कि कॉल से पहले:
fseek(stream, 0, SEEK_END);
with
):उदाहरण: ( फ़ाइल को बंद करने के लिए वास्तविक प्रोग्राम उपयोग मेंwith
- प्रलेखन देखें )
>>> open("test","wb").write("test")
>>> open("test","a+b").write("koko")
>>> open("test","rb").read()
'testkoko'
close()
?
with
- docs.python.org/2/whatsnew/2.6.html#pep-343-the-with-statement
मैं हमेशा ऐसा करता हूं,
f = open('filename.txt', 'a')
f.write("stuff")
f.close()
यह सरल है, लेकिन बहुत उपयोगी है।
f
अन्य कार्यों के लिए चर पास कर रहे हैं, भले ही एक फ़ाइल खोलने वाले एक ही फ़ंक्शन को इसे बंद करना चाहिए। with
वाक्य रचना पसंदीदा तरीका यह पूरा करने के लिए है।
आप शायद "a"
मोड तर्क के रूप में पास करना चाहते हैं । खुले के लिए डॉक्स देखें () ।
with open("foo", "a") as f:
f.write("cool beans...")
अपडेट (+), ट्रंकटिंग (w) और बाइनरी (b) मोड को अपडेट करने के लिए मोड तर्क के अन्य क्रमपरिवर्तन हैं, लेकिन बस के साथ शुरू करना "a"
आपकी सबसे अच्छी शर्त है।
file
एक निर्मित समारोह में छाया। चर के लिए इसका इस्तेमाल न करें।
file
अब Python 3 में बिलियन नहीं है । Python 2 में भी, इसका उपयोग बहुत कम किया जाता है । फ़ाइल खोलना एक सामान्य ऑपरेशन है। file
पायथन 2 और 3 पर यहाँ नाम का उपयोग करना ठीक है । 3. जाने कब असंगत होना है।
पायथन में मुख्य तीन मोड के कई बदलाव हैं, ये तीन मोड हैं:
'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
जब हम इस लाइन का उपयोग करते हैं open(filename, "a")
, जो a
फ़ाइल को जोड़ने का संकेत देता है, तो इसका मतलब है कि मौजूदा फ़ाइल में अतिरिक्त डेटा डालने की अनुमति है।
आप अपनी फ़ाइल में पाठ को जोड़ने के लिए बस निम्नलिखित पंक्तियों का उपयोग कर सकते हैं
def FileSave(filename,content):
with open(filename, "a") as myfile:
myfile.write(content)
FileSave("test.txt","test1 \n")
FileSave("test.txt","test2 \n")
आप print
इसके बजाय भी कर सकते हैं write
:
with open('test.txt', 'a') as f:
print('appended text', file=f)
यदि test.txt मौजूद नहीं है, तो इसे बनाया जाएगा ...
WRITE_TO_FILE = open('my_file.txt', mode='a')
, और फिर अपने कार्यक्रम के दौरान आपके पास कई प्रिंट हो सकते हैं print('Hello world', file=WRITE_TO_FILE)
, और जब भी आप कंसोल पर आउटपुट देखने का निर्णय लेते हैं तो ध्वज को केवल बदल दें WRITE_TO_FILE = None
। अगर यह नहीं है तो फाइल को अंत में बंद करना न भूलेंNone
आप फ़ाइल को r+
मोड में भी खोल सकते हैं और फिर फ़ाइल स्थिति को फ़ाइल के अंत में सेट कर सकते हैं ।
import os
with open('text.txt', 'r+') as f:
f.seek(0, os.SEEK_END)
f.write("text to add")
में फ़ाइल खोलने r+
मोड आप अंत के अलावा अन्य फ़ाइल पदों के लिए लिखते हैं, जबकि करने देगा a
और a+
अंत करने के लिए बल लेखन।
यदि आप किसी फ़ाइल में संलग्न करना चाहते हैं
with open("test.txt", "a") as myfile:
myfile.write("append me")
हमने चर myfile
नाम की एक फ़ाइल खोलने की घोषणा की test.txt
। ओपन 2 तर्क लेता है, वह फ़ाइल जिसे हम खोलना चाहते हैं और एक स्ट्रिंग जो अनुमति या संचालन के प्रकार का प्रतिनिधित्व करती है जिसे हम फ़ाइल पर करना चाहते हैं
यहाँ फ़ाइल मोड विकल्प है
मोड विवरण 'r' यह डिफ़ॉल्ट मोड है। यह पढ़ने के लिए फ़ाइल खोलता है। 'w' यह मोड लिखने के लिए फाइल खोलता है। यदि फ़ाइल मौजूद नहीं है, तो यह एक नई फ़ाइल बनाता है। यदि फ़ाइल मौजूद है तो यह फ़ाइल को काट देती है। 'x' एक नई फ़ाइल बनाता है। यदि फ़ाइल पहले से मौजूद है, तो कार्रवाई विफल हो जाती है। 'a' एपेंड मोड में फाइल खोलें। यदि फ़ाइल मौजूद नहीं है, तो यह एक नई फ़ाइल बनाता है। 't' यह डिफ़ॉल्ट मोड है। यह टेक्स्ट मोड में खुलता है। 'b' यह बाइनरी मोड में खुलता है। '+' यह पढ़ने और लिखने (अपडेट) के लिए एक फ़ाइल खोलेगा
'a'
पैरामीटर का प्रतीक मोड जोड़ देते हैं। यदि आप with open
हर बार उपयोग नहीं करना चाहते हैं , तो आप आसानी से इसे करने के लिए एक फ़ंक्शन लिख सकते हैं:
def append(txt='\nFunction Successfully Executed', file):
with open(file, 'a') as f:
f.write(txt)
आप कहीं और अंत के अलावा अन्य लिखना चाहते हैं, तो आप उपयोग कर सकते हैं 'r+'
† :
import os
with open(file, 'r+') as f:
f.seek(0, os.SEEK_END)
f.write("text to add")
अंत में, 'w+'
पैरामीटर और भी अधिक स्वतंत्रता देता है। विशेष रूप से, यह आपको फ़ाइल बनाने की अनुमति देता है यदि यह मौजूद नहीं है, साथ ही वर्तमान में मौजूद फ़ाइल की सामग्री को भी खाली कर सकता है।
एक फ़ाइल के अंत में अधिक पाठ को जोड़ने का सबसे सरल तरीका उपयोग करना होगा:
with open('/path/to/file', 'a+') as file:
file.write("Additions to file")
file.close()
a+
में open(...)
बयान का निर्देश संलग्न मोड में फ़ाइल को खोलने और पढ़ने के लिए और लिखने उपयोग की अनुमति देता है।
file.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()