2015-11-05 60 views
2

我遇到了一些试图正确读取文件的问题。Python阅读文本块

我只有一个代码来显示我试图稍微瞄准一下。但我想读取每块数据(四行)并将每个块插入一个数组中。我还需要将“城市”,“州”和“拉链”彼此分开。

据我所知,我应该读取文件,我读的每个块直到一个空行,在那里我会检查,看看它是否是第三行,如果是这样解析每个部分到自己的元素,并做所有这些直到最后。然而,我在使用Python的编码部分遇到问题。我对Python不太熟悉。

我的数据:

Name 
address 
city, state zip 
phone number 
//empty line 
Name 
address 
.... 

我的代码:

with open('tester_everything.txt') as f:                             
mylist = []                                    
i=0                                      
for lines in f:                                   
    other_list = []   
    if lines == '\n': 
    mylist.append(other_list) 
    other_list = [] 

    other_list.insert(i, lines)                              
    i = i+1                                    
print mylist                                    
f.close() 

这将创建内部MYLIST所有空元素。

+0

在保存之前清空了'other_list'。在'for'后删除第一个'other_list = []',并在'with'之后重写。 – Kamejoin

+0

是:'城市,州邮编或'城市,州,邮编? –

回答

2
with open('tester_everything.txt') as f:                             
    mylist = [] 
    other_list = []                                     
    for lines in f:                                   
     if lines == '\n': 
      mylist.append(other_list) 
      other_list = [] 
     else: 
      other_list.append(lines)                                                                 
    print mylist                                   
+0

谢谢,我不能相信我现在忘记了我现在看到的其他声明。 如果我想解析第三行数据,我会在else语句中添加另一个if/else语句吗? – tholsapp

+0

是的。你可以在'for'之前设置一个计数器'count = 0',如果lines =='\ n''则将其重置为0,否则加1。然后你可以添加'if count == 2;'(第三行)并完成你的代码。 – Kamejoin