如何在python中使用startswith将大txt文件拆分为小txt文件?

时间:2020-04-10 15:31:21

标签: python

我有一个带有这种模式的文本文件

a.txt

61000001
11111111
22222222
61000002
11111111
22222222
33333333
61000003
11111111
22222222
33333333
我想像这样在python中使用startswith拆分成多个txt文件。怎么做?谢谢。

61000001.txt

11111111
22222222

61000002.txt

11111111
22222222
33333333

61000003.txt

11111111
22222222
33333333

2 个答案:

答案 0 :(得分:1)

这会从a.txt中生成您帖子中的文件

with open('a.txt', 'r') as fin:
  prefix = "6100000"
  output = []
  for line in fin:
    line = line.rstrip()
    if line.startswith(prefix):  # Check for prefix
      if output:
        with open(line + '.txt', 'w') as out:
          out.write('\n'.join(output))
          print(output)
          output = []
    output.append(line)
  if output:                     # last file for residual data
      with open(line + '.txt', 'w') as out:
          out.write('\n'.join(output))

答案 1 :(得分:1)

您可以使用以下代码读取文件的所有内容:

File_object = open(r"a.txt","r")
contents = File_object.read().splitlines()
print(contents)

现在您将文件的所有内容都包含在一个变量中,可以使用以下代码对其进行拆分:

file = None
prefix = "61000"
for content in contents:
    if content.startswith(prefix):
        filename = content+".txt"
        file = open(filename,"w")

    file.write(content+"\n")

在循环的每次迭代中都不要忘记异常处理和关闭文件。