如何显示仅第二列,并且比第二个文本文件
问题描述:
我想只显示第二列比较,如何显示仅第二列,并且比第二个文本文件
这是我的代码
with open('try.txt', 'rb') as file1:
file1_data = dict(line.split(None, 2)[1:] for line in file1 if line.strip())
print file1_data
我只想显示第二列,但它与它
也diplaying 3这是文本文件
E5 BAT One
E5 BALL Two
E5 CRICKET Three
比我找到Bat
这是textfile1的第二列second
文本文件
?Bat03|Batsman
This is the goods of cricket
?Balt|Bowler
Both can be use by batsman and bowler
?Bat133|Swimmer
Swiming is the best exercise
所以Bat
这是textfile1
我们转到第二个文本文件的第二栏,并找到蝙蝠和|
后忽略的值,如果在第二Bat
|
之前文本文件中找到比它显示
with open('second.txt', 'rb') as file2, open('output.txt', 'wb') as outputfile:
output = csv.writer(outputfile, delimiter='|')
for line in file2:
if line[:1] == '?':
row = line.strip().split('|')
key = row[0][1:]
if key in file1_data:
output.writerow(row + [file1_data])
else:
outputfile.write(line)
Required output
?Bat03|Batsman
This is the goods of cricket
?Bat133|Swimmer
Swiming is the best exercise
答
为什么不直接在分割后索引该行?
line.split()[1]
代替:
line.split(None,2)[1:]
当然,这不会是高兴的字典任。我不知道你为什么在那里有一个字典。如果对你来说都一样,我建议你使用list
来代替。
file1_data = [line.split()[1] for line in file1 if line.strip()]
如果你真的想保留字典,那么你已经几乎得到你想要的。第一列可以从file1_data.keys()
构建,它返回一个迭代(在python2.x上它是一个列表,在python3.x中它是一个类集对象)。当然,由于这是一本字典,因此原始文件的所有订单都将丢失。
你的意思是专栏,对吧? – 2013-05-10 12:43:48
@JakubM。是的,对不起 – Rocket 2013-05-10 12:45:50
@mgilson我进一步解释它 – Rocket 2013-05-10 12:55:28