2012-05-07 13 views
6

मैं एक temp फ़ाइल बनाने और लिखने में सक्षम हूं, हालांकि फ़ाइल लाइनों को पढ़ने पर खाली हैं। मैंने पुष्टि की कि temp फ़ाइल में सामग्री है। मेरा कोड यहाँ है। धन्यवादtemp.readline() खाली?

import tempfile 
temp = tempfile.NamedTemporaryFile() 

with open("~/somefile.txt") as inf: 
    for line in inf: 
     if line==line.lstrip(): 
      temp.write(line) 

line = str(temp.readline()).strip() 
print line #nothing 

उत्तर

15

आप फिर से खुल करने के लिए (या रिवाइंड) अस्थायी फ़ाइल इससे पहले कि आप से पढ़ सकते हैं है:

import tempfile 
temp = tempfile.NamedTemporaryFile() 

with open("~/somefile.txt") as inf: 
    for line in inf: 
     if line==line.lstrip(): 
      temp.write(line) 

temp.seek(0) # <=============== ADDED 

line = str(temp.readline()).strip() 
print line 

अन्यथा, फ़ाइल सूचक फ़ाइल के अंत में स्थिति में है जब आप temp.readline() पर कॉल करें।

+0

मुझे दस्तावेज़ों में "तलाश" कैसे दिखाई नहीं देता है "10.6। Tempfile - अस्थायी फ़ाइलें और निर्देशिकाएं उत्पन्न करें" यह काम कर रहा है और धन्यवाद। – fpena06

+6

@ fpena06: 'नामांकित समकालीन फ़ाइल() 'फाइल-जैसी ऑब्जेक्ट' लौटाती है"। फ़ाइल ऑब्जेक्ट्स के लिए दस्तावेज़ यहां हैं: http://docs.python.org/library/stdtypes.html#file-objects – NPE

संबंधित मुद्दे