2017-02-18 94 views
-2

使用python,我想分離一些數據文件。 文件格式是文本文件,並且沒有選項卡內部數據之間只有一個空格。使用Python的文本文件數據,分類和使其他文本文件

這裏是示例文件,

//test.txt 
    Class name age room fund. 
    13 A 25 B101 300 
    12 B 21 B102 200 
    9 C 22 B103 200 
    13 D 25 B102 100 
    20 E 23 B105 100 
    13 F 25 B103 300 
    11 G 25 B104 100 
    13 H 22 B101 300 

我要帶只包含行具體的數據,

類:13,基金300

,並保存另一個文本文件。

如果此代碼的工作,使文本文件是

//new_test.txt 
    Class name age room fund. 
    13 A 25 B101 300 
    13 F 25 B103 300 
    13 H 22 B101 300 

感謝。 HK

回答

0

這應該做。

with open('new_test.txt','w') as new_file: 
    with open('test.txt') as file: 
     print(file.readline(),end='',file=new_file) 
     for line in file: 
      arr=line.strip().split() 
      if arr[0]=='13' and arr[-1]=='300': 
       print(line,end='',file=new_file) 

但是,您應該在提問時包含您的代碼。它確保提供此網站的目的。

+0

我很抱歉,我忘了附上我的代碼。感謝您的指出。 –

0

如果要篩選數據:

def filter_data(src_file, dest_file, filters): 
    data = [] 
    with open(src_file) as read_file: 
     header = [h.lower().strip('.') for h in read_file.readline().split()] 
     for line in read_file: 
      values = line.split() 
      row = dict(zip(header, values)) 
      data.append(row) 
      for k, v in filters.items(): 
       if data and row.get(k, None) != v: 
        data.pop() 
        break 

    with open(dest_file, 'w') as write_file: 
     write_file.write(' '.join(header) + '\n') 
     for row in data: 
      write_file.write(' '.join(row.values()) + '\n') 


my_filters = { 
    "class": "13", 
    "fund": "300" 
} 

filter_data(src_file='test.txt', dest_file='new_test.txt', filters=my_filters) 
相關問題