साथ फ़ाइल मैं वर्तमान में एक CSV फ़ाइल, जो जब Excel में खोला, 5 कॉलम में कुल की है। केवल कॉलम ए और सी मेरे लिए किसी भी महत्व के हैं और शेष कॉलम में डेटा अप्रासंगिक है।पार्सिंग सीएसवी/टैब सीमांकित txt अजगर
लाइन 8 से शुरू करना और फिर 7 के गुणकों में काम करना (यानी लाइन 8, 15, 22, 2 9, 36 आदि ...), मैं इन क्षेत्रों से जानकारी के साथ पायथन 2.7 के साथ एक शब्दकोश बनाना चाहता हूं । कॉलम ए में डेटा कुंजी (6-अंकों का पूर्णांक) होगा और कॉलम सी में डेटा कुंजी के लिए संबंधित मान होगा। मैं नीचे इस को उजागर करने की कोशिश की है लेकिन स्वरूपण सबसे अच्छा नहीं है: -
A B C D
1 CDCDCDCD
2 VDDBDDB
3
4
5
6
7 DDEFEEF FEFEFEFE
8 123456 JONES
9
10
11
12
13
14
15 293849 SMITH
ऊपर के अनुसार, मैं अपने शब्दकोश और में एक महत्वपूर्ण के रूप में ए 7 (DDEFEEF) से मान प्राप्त "करने के लिए देख रहा हूँ FEFEFEFE "संबंधित डेटा जा रहा है और उसके बाद मेरे शब्दकोश में एक और प्रविष्टि जोड़ने, के साथ 15 लाइन पर कूद" 2,938,495 स्मिथ "संबंधित मान से किया जा रहा है" मेरे कुंजी और जा रहा है "।
कोई सुझाव? स्रोत फ़ाइल एक .txt फ़ाइल है जिसमें प्रविष्टियां टैब-डिलीमिट होती हैं। धन्यवाद
स्पष्टीकरण:
बस स्पष्ट करने के लिए, अब तक, मैं नीचे की कोशिश की है: -
import csv
mydict = {:}
f = open("myfile", 'rt')
reader = csv.reader(f)
for row in reader:
print row
ऊपर बस एक समय में हालांकि एक पंक्ति सभी सामग्री बाहर प्रिंट करता है। मैंने "पाठक में पंक्ति (7) के लिए" कोशिश की "लेकिन यह एक त्रुटि लौटा दी। सूचियों की एक सूची में पाठ बदल कर
import csv
from itertools import islice
entries = csv.reader(open("myfile", 'rb'))
mydict = {'key' : 'value'}
for i in xrange(6):
mydict['i(0)] = 'I(2) # integers representing columns
range = islice(entries,6)
for entry in range:
mydict[entries(0) = entries(2)] # integers representing columns
@jdigital - मूल प्रश्न शामिल करने के लिए मैं क्या कोशिश की है संपादित अब तक – thefragileomen
"लाइन 8 से शुरू होने वाले" नहीं "ए 7" के साथ संगत, "6 अंकों पूर्णांक" है "डीडीईएफईएफ" के साथ संगत नहीं है - कृपया अपना प्रश्न संपादित करें। –
@ जॉन माचिन - ए 7 वह सेल नहीं है जिसे मैं डेटा निकालना चाहता हूं, यह ए 8 है। ए 7 में डेटा बस आपको एक उदाहरण देने के लिए है जो मेरी सीएसवी फ़ाइल में अन्य डेटा मौजूद है। चूंकि यह 6 अंकों का पूर्णांक नहीं है, इसे अनदेखा किया जाना है। धन्यवाद – thefragileomen