python - 仅写入文件中某行的某些列(以空格分隔)

标签 python text file-io

我正在逐行阅读日志。我试图只打印该行的某些列。对于 bash 脚本,我会使用 awk 和 $ 来分隔它。但是,我无法弄清楚如何使用 Python 来完成它。我尝试使用 split,但它并不完全符合我的要求。

我现在的代码:

for line in file:
    if STORED_PROCS_BEGIN in line:
        log.write(line)
    elif STORED_PROCS_FINISHED in line:
        log.write(line)
    elif STORED_TASK_BEGIN in line:
        log.write(line)
    elif STORED_TASK_FINISHED in line:
        log.write(line)
    elif ACTUATE_REPORT_SCHEDULE in line:
        break

所以当我试图格式化传递给 write() 的行时。

我想要的例子:

日期时间信息 junk1 junk2 名称 => 日期时间信息名称

编辑:我有一个想法,我可以拆分和提取我想要的字段,然后将它们连接在一起。但必须有更好的方法。

最佳答案

您可以使用 split() 将一行拆分成单词,没错。然后你可以索引你想要在输出中的列:

line = 'date time info junk1 junk2 name'
parts = line.split()
parts_I_want = parts[0:3] + parts[5:6]
print ' '.join(parts_I_want)

如果只是想删除一些列,也可以使用del:

line = 'date time info junk1 junk2 name'
parts = line.split()
del parts[4]  # junk2
del parts[3]  # junk1
print ' '.join(parts)

关于python - 仅写入文件中某行的某些列(以空格分隔),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31302517/

相关文章:

java - 在字符串数组中加载 .text 文件

java - 从文件中读取可变行数

python - 如何更改算法中的参数以获得更好的性能?

python - Pandas 滚动窗口,带有过滤条件,删除一些最新数据

java - 使用字体测量文本宽度作为 org.faceless.pdf.PDFFont 实例

html - 如何使表格标题中的文本不加粗?

python - 模块未找到错误 : No module named 'MySQLdb'

python - 是否有用于 Python 的类似 Spock 的测试库

java - 文本文件解析上的数组 IndexOutOfBoundsException

.net - 如何永久删除文件,使其无法恢复?