在python中使用文本文件数据、分类和制作其他文本文件

Using text file data, classification and make other text file in python

使用 python,我想分离一些数据文件。 文件形式是文本文件,内部数据之间只有一个space没有标签。

这里是示例文件,

//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

我只想获取包含特定数据的行,

class : 13 , fund 300

,并保存另一个文本文件。

如果此代码有效,则制作文本文件就是

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

谢谢。 香港

这应该可以。

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)

但是,您应该在提问时包含您的代码。它确保本网站的目的得以实现。

如果您想过滤数据:

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)