मोड ab+
r
निहित है और 'a'ppend और (' w'rite '+' r'ead) अनावश्यक हैं। चूंकि CPython (अर्थात नियमित अजगर) file
सी पर आधारित है FILE
प्रकार stdio, यहाँ fopen (3) आदमी पृष्ठ से प्रासंगिक पंक्तियां हैं:
- पढ़ने और लिखने के लिए
w + खुला। फ़ाइल बनाई गई है यदि यह मौजूद नहीं है, अन्यथा इसे छोटा कर दिया गया है। स्ट्रीम फ़ाइल की शुरुआत पर स्थित है।
ए + पढ़ने और जोड़ने के लिए खुला (फ़ाइल के अंत में लिखना)। फ़ाइल बनाई गई है यदि यह मौजूद नहीं है। पढ़ने के लिए प्रारंभिक फ़ाइल स्थिति फ़ाइल की की शुरुआत में है, लेकिन आउटपुट हमेशा फ़ाइल के अंत में संलग्न है।
"बी" के साथ डॉस को खुश करने के लिए प्रयास किया गया। संभवतः आप ऐसा कुछ करना चाहते हैं:
>>> f = open('junk', 'ab+')
>>> f
<open file 'junk', mode 'ab+' at 0xb77e6288>
>>> f.write('hello\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.write('there\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.readline()
'there\n'
कार्य करता है। आपके उदाहरण में os.SEEK_SET को इंगित करने के लिए भी धन्यवाद। मुझे लगता है कि मैंने फाइल को पहले से खोलने की कोशिश की लेकिन इससे कुछ भी नहीं पढ़ सका। मेरे दिमाग को पार नहीं किया गया था स्ट्रीम को फ़ाइल के अंत में रखा गया था ... –
ध्यान रखें कि आपको * हमेशा * एक * पढ़ने और लिखने, या लिखने और पढ़ने के बीच की तलाश करनी चाहिए। ऐसा करने के लिए भूलना आमतौर पर अधिकांश सिस्टम पर काम करेगा, लेकिन विंडोज़ पर नहीं (उदाहरण के लिए)। –