2016-02-26 94 views
0

简单的文本文件:打印第一元素或第二元素从文本文件

whatevera, what2 
whateverb, what3 
whateverc, what4 
whateverd, what5 

(whatevera, what2) 
(whateverb, what3) 
(whateverc, what4) 
(whateverd, what5) 

它打印一行行。

with open('file.txt') as fp: 
    for line in fp: 
     line = line.rstrip() 
     print line 

什么用for循环循环 通过每行只打印第一元素或第二元素最佳方法?

for line in f: 
     print line[0] 
whatevera 
whateverb 
whateverc 
whateverd 

第二个元素

for line in f: 
     print line[1] 

what2 
what3 
what4 
what5 

回答

1

使用zip()函数来获取列:

with open('file.txt') as fp: 
    first, second = zip(*[line.rstrip().split(',') for line in fp]) 
    print first 
    print second 

由于这种方法将打印在tuple的项目,如果你想打印一个项目列模式下你可以加入换行字符:

print '\n'.join(first) 

如果你想访问打印前的行(修改它们等),你可以简单的循环和拆分。您最好从上述脚本中循环使用fristsecondtuples。否则,它不是一种优化和pythonic的方式来单独循环访问第一个和第二个项目的文件。

+0

ValueError:解压缩的值太多 – user5977290

+0

@ user5977290您需要用''分隔行,然后应用'zip'函数。现在就试试。 – Kasramvd

+0

如何通过循环打印第一个列表?例如,这打印的第一个元素 - >在第一,第二行: \t打印行[0] – user5977290

0

这可以使用python中的函数split()来完成。使用函数将允许您重用代码。

def create_list(filename): 
    element_list = [] 
    with open(filename) as f: 
     for line in f: 
      line_data = line.split(',') 
'''you can change line_data[0] to line_data[1] 
if you want to print the next half of the txt line''' 
      element_list.append(line_data[0]) 
return element_list 

print(create_list('file.txt')) 

如果需要,稍后可以将line_data [1]追加到其他列表中。

相关问题