我有一个带有这种模式的文本文件
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
答案 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")
在循环的每次迭代中都不要忘记异常处理和关闭文件。