我收到许多格式如下的文本文件:
100000054896524Textext
30000680235498065464065 texttext
50005065321465406546406 16227322
7000056432586846403546854065354096
50046540632146540665406 16268431
7000066543241564786413468464163156
30065406346840654065486 TEXTETXT
我需要根据这些行的第一个字符将这些文件的内容写入新文件,这样每个第一个字符就有n个文件。对于上述数据,我将有四个新文件:
file1.txt
:
100000054896524Textext
file3.txt
:
30000680235498065464065 texttext
30065406346840654065486 TEXTETXT
file5.txt
:
50005065321465406546406 16227322
50046540632146540665406 16268431
和file7.txt
:
7000056432586846403546854065354096
7000066543241564786413468464163156
我似乎不知道该怎么做。我尝试了以下方法:
with open('test_file.txt','r') as file_handle:
file_content = file_handle.read()
with open('file1.txt', 'w') as file_handle:
for line in file_content:
if line[0] == '1':
file_handle.write(line+'\n')
with open('file3.txt', 'w') as file_handle:
for line in file_content:
if line[0] == '3':
file_handle.write(line+'\n')
以此类推5和7,但这只是让我的文件有一堆1和3没有数据
我不明白的是什么?多谢各位
与其为每个文件单独调用
open
,不如使用字典更干净。下面是一个工作示例:使用
readlines()
代替read()
(第2行)使用
file_handle.read()
而不是file_handle.readlines()
将返回一个字符串,因此使用file_handle.read()
将逐字符迭代使用
readlines()
将逐行迭代,因为该函数将返回一个列表read
将文件作为单个字符串读取。迭代时,是逐字符而不是逐行迭代。您可以使用file_content = file_handle.readlines()
以便迭代行而不是字符不要为每个文件复制代码,而是设置缓存,让脚本动态创建文件
相关问题 更多 >
编程相关推荐