উত্তর:
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 এনকোডিং ব্যবহার করে।
"অ্যা" বা "আব" মোড হিসাবে সেট করে আপনার অ্যাপেনড মোডে ফাইলটি খুলতে হবে। খোলা দেখুন () ।
আপনি যখন "একটি" মোড দিয়ে খুলবেন, লেখার অবস্থান সর্বদা ফাইলের শেষে (একটি সংযোজন) থাকবে। আপনি পড়ার অনুমতি দিতে, পিছনের দিকে সন্ধান করতে এবং পড়তে "a +" দিয়ে খুলতে পারেন (তবে সমস্ত লেখাগুলি এখনও ফাইলটির শেষে থাকবে!)।
উদাহরণ:
>>> 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'
দ্রষ্টব্য : 'ক' ব্যবহার করা 'ডাব্লু' দিয়ে খোলার এবং ফাইলটির শেষের দিকে অনুসন্ধান করার মতো নয় - বিবেচনা করুন যে কোনও প্রোগ্রাম যদি ফাইলটি খোলায় এবং অনুসন্ধান এবং লেখার মধ্যে লেখালেখি শুরু করে তবে কী ঘটতে পারে তা বিবেচনা করুন। কিছু অপারেটিং সিস্টেমে, 'এ' দিয়ে ফাইলটি খোলার গ্যারান্টি দেয় যে আপনার সমস্ত নিম্নলিখিত লেখাগুলি পরমাণুর সাথে ফাইলের শেষের দিকে যুক্ত হবে (এমনকি ফাইলটি অন্য লেখার দ্বারা বৃদ্ধি পাবে)।
"একটি" মোড কীভাবে চালিত হয় সে সম্পর্কে আরও কয়েকটি বিবরণ ( কেবল লিনাক্সে পরীক্ষিত )। এমনকি যদি আপনি পিছনে সন্ধান করেন, প্রতিটি লেখাই ফাইলের শেষের সাথে যুক্ত হবে:
>>> 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
- ডকস.প্যাথথন.আর.
আমি সবসময় এটি করি,
f = open('filename.txt', 'a')
f.write("stuff")
f.close()
এটি সহজ, তবে খুব দরকারী।
f
অন্যান্য ফাংশনগুলিতে ভেরিয়েবলটি অতিক্রম করে থাকেন তবে একই ফাংশন যা কোনও ফাইল খোলে তা বন্ধ করা উচিত। with
সিনট্যাক্স পছন্দের এই কর্ম সম্পন্ন করতে হয়।
আপনি সম্ভবত "a"
মোড আর্গুমেন্ট হিসাবে পাস করতে চান । খোলা () এর জন্য ডকগুলি দেখুন ।
with open("foo", "a") as f:
f.write("cool beans...")
আপডেট করার জন্য মোড আর্গুমেন্টের আরও অনুমোদন রয়েছে (+), ছাঁটাই (ডাব্লু) এবং বাইনারি (খ) মোড কিন্তু ঠিক দিয়ে শুরু "a"
করা আপনার সেরা বাজি।
file
একটি অন্তর্নির্মিত ফাংশন ছায়া গো। এটি ভেরিয়েবলের জন্য ব্যবহার করবেন না।
file
পাইথন ৩-এ এখন বিল্টিন নেই Even এমনকি পাইথন ২- তেও এটি খুব কম ব্যবহার করা হয় । একটি ফাইল খোলার একটি সাধারণ ক্রিয়াকলাপ। file
পাইথন 2 এবং 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
ফাইল সংযোজন নির্দেশ করে, এর অর্থ বিদ্যমান ফাইলে অতিরিক্ত ডেটা toোকানোর অনুমতি দেওয়া হয়।
আপনি কেবল আপনার ফাইলের টেক্সট সংযোজন করতে এই নিম্নলিখিত লাইনগুলি ব্যবহার করতে পারেন
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 টি আর্গুমেন্ট লাগে, আমরা যে ফাইলটি খুলতে চাই এবং সেই স্ট্রিং যা ফাইলটিতে আমাদের অনুমতি বা অপারেশন প্রকারের প্রতিনিধিত্ব করে represents
এখানে ফাইল মোড বিকল্প রয়েছে
মোডের বর্ণনা 'r' এটি ডিফল্ট মোড। এটি পড়ার জন্য ফাইল খোলে। 'ডাব্লু' এই মোড লেখার জন্য ফাইল খুলবে। যদি ফাইলটি বিদ্যমান না থাকে তবে এটি একটি নতুন ফাইল তৈরি করে। যদি ফাইল বিদ্যমান থাকে তবে ফাইলটি কেটে যায়। 'x' একটি নতুন ফাইল তৈরি করে। যদি ফাইলটি ইতিমধ্যে বিদ্যমান থাকে তবে অপারেশন ব্যর্থ হয়। 'একটি' অ্যাপেনড মোডে ফাইল খুলুন। যদি ফাইলটি বিদ্যমান না থাকে তবে এটি একটি নতুন ফাইল তৈরি করে। 't' এটি ডিফল্ট মোড। এটি পাঠ্য মোডে খোলে। 'বি' এটি বাইনারি মোডে খোলে। '+' এটি পড়তে এবং লেখার জন্য একটি ফাইল খুলবে (আপডেট করা)
'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(...)
বিবৃতি নির্দেশ করে append মুডে ফাইল খুলুন এবং পড়া এবং লেখার অ্যাক্সেস মঞ্জুর করে।
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()