python - 按字符串位置解析文本文件

标签 python parsing

我有一个文本文件需要在一行中的某些字符位置进行拆分。理想情况下,我只想在指定位置插入一个逗号,这样我就可以将它加载到 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/

相关文章:

java - 检测字符串是否为数字的最优雅方法?

c++ - boost::spirit 中的运算符优先级?

python - 从源码下载了python3.5,但是pip3不存在

用于树数据结构的无序集的 Python 单元测试

python - 如何在 Python 多处理池中运行清理代码?

python - 如何在扭曲中为某些文件打开新的日志文件

python - 为开发环境管理 PYTHONPATH

android - 将 Android 菜单 XML 资源解析为对象列表

Java CSV 文件操作

c - 如何使用 libxml2 深入解析 xml 文件