python download - एक फ़ाइल की शुरुआत करने के लिए लाइन तैयार करें




in hindi (6)

मैं इसे एक अलग फ़ाइल का उपयोग कर कर सकता हूं, लेकिन मैं फ़ाइल की शुरुआत में एक लाइन कैसे जोड़ूं?

f=open('log.txt','a')
f.seek(0) #get to the first position
f.write("text")
f.close()

यह फ़ाइल के अंत से लिखना शुरू करता है क्योंकि फ़ाइल संलग्न मोड में खोला जाता है।


Answers

किसी भी अंतर्निहित कार्यों के साथ ऐसा करने का कोई तरीका नहीं है, क्योंकि यह बहुत अक्षम होगा। प्रत्येक बार जब आप सामने की रेखा जोड़ते हैं तो आपको फ़ाइल की मौजूदा सामग्री को नीचे स्थानांतरित करने की आवश्यकता होगी।

एक यूनिक्स / लिनक्स उपयोगिता tail जो फ़ाइल के अंत से पढ़ सकती है। शायद आप अपने आवेदन में यह उपयोगी पा सकते हैं।


एनपीई के जवाब में कोड डालने के लिए, मुझे लगता है कि ऐसा करने का सबसे प्रभावी तरीका यह है:

def insert(originalfile,string):
    with open(originalfile,'r') as f:
        with open('newfile.txt','w') as f2: 
            f2.write(string)
            f2.write(f.read())
    os.rename('newfile.txt',originalfile)

उन सभी फाइल सिस्टमों में जिन्हें मैं परिचित हूं, आप इन जगहों पर ऐसा नहीं कर सकते हैं। आपको एक सहायक फ़ाइल का उपयोग करना होगा (जिसे आप मूल फ़ाइल का नाम लेने के लिए नाम दे सकते हैं)।


num = [1, 2, 3] #List containing Integers

with open("ex3.txt", 'r+') as file:
    readcontent = file.read()  # store the read value of exe.txt into 
                                # readcontent 
    file.seek(0, 0) #Takes the cursor to top line
    for i in num:         # writing content of list One by One.
        file.write(str(i) + "\n") #convert int to str since write() deals 
                                   # with str
    file.write(readcontent) #after content of string are written, I return 
                             #back content that were in the file

अलग विचार:

(1) आप मूल फ़ाइल को चर के रूप में सहेजते हैं।

(2) आप मूल फ़ाइल को नई जानकारी के साथ ओवरराइट करते हैं।

(3) आप मूल फ़ाइल को नई जानकारी के नीचे डेटा में जोड़ते हैं।

कोड:

with open(<filename>,'r') as contents:
      save = contents.read()
with open(<filename>,'w') as contents:
      contents.write(< New Information >)
with open(<filename>,'a') as contents:
      contents.write(save)

यदि आप unittests का उपयोग करने के लिए नए ब्रांड हैं, तो सीखने का सबसे आसान तरीका अक्सर सबसे अच्छा होता है। उस आधार पर मैं डिफ़ॉल्ट unittest मॉड्यूल के बजाय py.test का उपयोग करने की सलाह देते हैं।

इन दो उदाहरणों पर विचार करें, जो एक ही काम करते हैं:

उदाहरण 1:

import unittest

class LearningCase(unittest.TestCase):
    def test_starting_out(self):
        self.assertEqual(1, 1)

def main():
    unittest.main()

if __name__ == "__main__":
    main()

उदाहरण 2:

def test_starting_out():
    assert 1 == 1

मान लें कि दोनों फाइलों का नाम test_unittesting.py , हम परीक्षण कैसे चला सकते हैं?

उदाहरण 1

$ cd /path/to/dir/
$ python test_unittesting.py

उदाहरण 2:

$ cd /path/to/dir/
$ py.test




python