python - 从平面文件中解析出数据

标签 python

我正在尝试从平面文件中读取一些数据并使用 Python 将其显示在其他应用程序上。我的平面文件有 12,000 行,我不需要所有数据。我需要解析一些数据。我的平面文件中有 12,000 行。一个 block 的行除了其他数据之外还有 00,另一个 block 除了行中的其他数据之外还有 10。我想要做的是解析出所有包含 10 的行,并仅包含那些包含 00 的行。

下面是更新后的示例文件。我想用 10 解析出所有行。而且它只是一个示例,我的实际平面文件有 12,000 行。

我刚刚更新了我的平面文件。在这里,我只想读取以 $ 开头、$ 之后为 LOB 以及 & 之前结尾为 00 的行。我想解析平面文件中的其他所有内容。

$90TM020516 19002200&
$90LOB  0   0   0   7 10  &
$90LOB 25   0   0   6 10  &
$90LOB 57   0   0   6 10  &
$90LOB353   0   0   5 10  &
$90LOB 36   0   0   5 10  &
$90GPSA8   0   38281168  -77448376&
$90LOB276   0   0   5 10  &
$90LOB185   0   0   6 10  &
$90LOB197   0   0   6 00  &
$90LOB198   0 254   6 00  &
$90LOB197   0 254   6 00  &
RSSI $90LOB201   0 254   5 00  &
$90TM020516 19002300&
$90LOB194   0 254   5 00  &
$90LOB190   0 254   5 00  &
$90LOB185   0 254   5 00  &
$90LOB181   0 254   5 00  &
$90LOB187   0 254   5 00  &
$90LOB192   0 254   5 00  &
$90LOB195   0 254   5 00  &
$90LOB195   0 254   5 00  &
$90LOB191   0 254   5 00  &
$90LOB184   0 254   5 00  &
$90LOB177   0 254   5 00  &

下面是我用来读取数据的代码

  for line in lines:
        if (line[0] == '$'):
         if (line[3:6] == 'LOB'):
            if (line[22:24]=='00'):

如果您愿意,我可以向您发送整个平面文件。它只是文件的摘录。

最佳答案

如果我正确理解你的问题(我不确定我是否理解),你有一个文件,其中的行如下所示:

@45   0 0   5 10  *
@45   0 0   5 10  *
@45   0 0   5 10  *
@45   0 0   6 10  *
@45   0 0   6 00  *
@45   0 0   6 00  *
@45   0 0   6 00  *
@45   0 0   5 00  *

...并且您只想读取具有 00 的行并忽略具有 10 的行。

下面是实现此目的的代码示例:

# List containing all the lines you want to save
lines_you_want = []

# Open the file with 12,000 lines
with open('some.file', 'rb') as infile:

    # Check if each line starts with 00
    for line in infile:

        #  Check if the 15th character is a '0' instead of a '1'
        if (line[15] == '0'):
            lines_you_want.append(line)

# Do something with lines_you_want

这假设 00 或 10 始终位于文件中的同一位置(字符 15 和 16),并且这两个是唯一可能存在的字符(即不是 01、11、12、29 或其他字符) ,否则您将不得不更改此设置。

您也可以根据您的应用程序对行进行一些操作,而不是创建列表。两种方法都有效。

如果我做出了错误的假设,请发表评论,我将编辑我的答案。

关于python - 从平面文件中解析出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441100/

相关文章:

python - 更改 Django/Postgres db_table 名称

python - QtWebKit内存泄漏有什么解决方案吗?

python - 无法安装 pymqi 或 py3mqi

python - 编译单个语句时发现多个语句

python - Power BI(PBIX) - 解析布局文件

python - 计算 if 循环的迭代次数

python - 为另一个数据框中的每一行重复 pandas 行的更有效方法?

Python Keras 运行错误(无效语法)

python - gdb PrettyPrinter 插件例程 StdStringPrinter 在处理 std::basic_string<wchar_t(,.*)?>$ 时崩溃

python - 安装模块时出现 Odoo 错误 - XMLSyntaxError : None