2012-03-25 5 views
6

में विभाजित मैं नीचे प्रारूप में एक फ़ाइल है:अजगर फ़ाइल से स्ट्रिंग में पढ़ सकते हैं और यह मान

995957,16833579 
995959,16777241 
995960,16829368 
995961,50431654 

मैं प्रत्येक पंक्ति में पढ़ना चाहते हैं लेकिन उचित मान में मूल्यों अलग हो गए। उदाहरण के लिए पहली पंक्ति में विभाजित किया गया है: एक स्ट्रिंग के बाद से

x = 995957 
y = 16833579 

जब आप में इसे पढ़ा और मैं उन्हें किसी पूर्णांक पर परिवर्तित करना चाहते हैं और उन्हें अलग हो गए, कैसे वास्तव में मैं यह कर के बारे में जाना होगा? किसी भी सहायता की सराहना की जाएगी।

धन्यवाद! -

+0

आपने अभी तक किस कोड का प्रयास किया है? –

उत्तर

14

कुछ इस तरह प्रत्येक पंक्ति के लिए स्ट्रिंग चर a में पढ़ें:

>>> a = "123,456" 
>>> b = a.split(",") 
>>> b 
['123', '456'] 
>>> c = [int(e) for e in b] 
>>> c 
[123, 456] 
>>> x, y = c 
>>> x 
123 
>>> y 
456 

अब तुम क्या x और y के रूप में सौंपा है, जो पूर्णांक हैं के साथ आवश्यक है कर सकते हैं।

+0

'मानचित्र (int, a.split (", ")) ' –

1
>>> [[int(i) for i in line.strip().split(',')] for line in open('input.txt').readlines()] 
[[995957, 16833579], [995959, 16777241], [995960, 16829368], [995961, 50431654]] 
10

फ़ाइलों के लिए open(file, mode) का उपयोग करें। मोड पढ़ने के लिए 'आर' का एक संस्करण है, लिखने के लिए 'डब्ल्यू', और संभावित रूप से 'बी' जोड़ा गया है (उदाहरण के लिए, 'आरबी') बाइनरी फाइलें खोलने के लिए। नीचे दिए गए लिंक को देखें।

readline() या readlines() के साथ open का उपयोग करें। पूर्व एक समय में एक लाइन वापस करेगा, जबकि बाद में लाइनों की एक सूची लौटाता है।

अल्पविराम पर विभाजित करने के लिए split(delimiter) का उपयोग करें।

आखिरकार, आपको प्रत्येक आइटम को पूर्णांक में डालना होगा: int(foo)। आप शायद नीचे दिए गए लिंक में except ValueError के बाद एक प्रयास ब्लॉक के साथ अपने कलाकार को घेरना चाहते हैं।

एक ही बार में ए और बी आवंटित करने के लिए 'कई काम' का उपयोग कर सकते हैं:

>>>a, b = map(int, "2342342,2234234".split(",")) 
>>>print a 
2342342 
>>>type(a) 
<type 'int'> 

python io docs

python casting

+0

अच्छा जवाब है ... –

14

मैं की तरह कुछ करना होगा:

filename = "mynumbers.txt" 
mynumbers = [] 
with open(filename) as f: 
    for line in f: 
     mynumbers.append([int(n) for n in line.strip().split(',')]) 
for pair in mynumbers: 
    try: 
     x,y = pair[0],pair[1] 
     # Do Something with x and y 
    except IndexError: 
     print "A line in the file doesn't have enough entries." 

खुले के साथ http://docs.python.org/tutorial/inputoutput.html एस में अनुशंसित है यह सुनिश्चित करता है कि प्रसंस्करण के दौरान अपवाद उठाए जाने पर भी फ़ाइलें सही ढंग से बंद हो जाएं।

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