我有一个文本文件需要在一行中的某些字符位置进行拆分。理想情况下,我只想在指定位置插入一个逗号,这样我就可以将它加载到 MS Access 表(或类似表)中。文本的一行看起来像这样:
“00ZZ101 BlaBla BlaBlaBlaBla 022000G0132000R6G00BBDJ1000 091030820514 BlaBla Bla 1PP”
我需要解析从0:4、13:29、30:32、33:34等等开始的文本……
我需要结果基本上以逗号分隔,以便我可以将它们加载到表中。所以基本上取前四个字符并将它们拆分,然后是第 13 个到第 29 个字符并拆分它们,依此类推。文本文件中的问题在每行末尾(第 167 个字符位置)有一个回车符。因此,我需要根据一些规则将每一行拆分为多个部分,这些规则决定哪些数据应该组合在一起。
最佳答案
从 Python 控制台:
>>> s = "00ZZ101 Bla Bla BlaBlaBlaBla 022000G0132000R6G00BBDJ1000 091030820514 BlaBla Bla 1PP"
>>> slices = [(0,4), (13,29), (30,32), (33,34)]
>>> [s[slice(*slc)] for slc in slices]
['00ZZ', 'la BlaBlaBlaBla ', '22', '0']
如果您正在从输入文本文件中的每一行读取字符串,这是读取文件并依次处理每一行的方式:
with open('xyzzy.txt') as sourcefile:
for line in sourcefile:
# process each line
关于python - 按字符串位置解析文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11040201/