【问题标题】:Python delete line from (multiple) file(S)Python从(多个)文件中删除行(S)
【发布时间】:2019-08-22 21:19:31
【问题描述】:

我是 python 新手,我已经整天晚上都在搜索一些代码来读取行并将其打印到控制台 我的目标是过滤单词并删除一些行

我发现只有一段代码可以完成这项工作,但其中有一个错误

我要学习的所有示例都只是打印 DO NOT WORK al ALL

我得到的一些错误

IndentationError: unexpected indent

return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 1929: character maps to <undefined>
SyntaxError: Missing parentheses in call to 'print'.Did you mean print(line)?

SyntaxError:(unicode 错误)'unicodeescape' 编解码器无法解码位置 2-3 中的字节:截断 \UXXXXXXXX 转义

这些只是一些错误 我假设我错过了 python 中的一些包???

有效的代码过滤不正确

with open('C:\\Users\\XXX\\Desktop\\NF\\NL.txt', 'rb') as file_in:
with open("C:\\Users\\XXX\\Desktop\\NF\\new.txt", "wb") as file_out:
    file_out.writelines(filter(lambda line: b'ADM1' and b'ADM2' in line, file_in)) 

过滤器是 ADM1 和 ADM2 然而,文本文件也有包含 ADM2H 的行,输出文件应该只有 ADM1 和 ADM2,但我也得到了所有包含 ADM2 的变体

我如何过滤确切的单词,有人可以提供我打印文本文件中所有行的示例代码吗 另外我想有一段代码可以在多个文件上执行上面的代码 我在网上找不到任何可以完成这项工作的网站

非常感谢您帮助新秀

【问题讨论】:

  • 刚发现我使用的文件是 utf-8 添加了 encoding='utf-8' 而不是我可以使用网上找到的大多数示例仍然无法正确过滤和写入归档

标签: python filter printing line


【解决方案1】:

找到了 我发现示例的原因是我的文件是 UTF-8 添加 encoding='utf-8' 后,脚本运行良好

with open("Yourfile.txt", "r+", encoding='utf-8') as f:
    new_f = f.readlines()
    f.seek(0)
    for line in new_f:
        if "PPL" not in line:
            f.write(line)
    f.truncate()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-05
    • 2019-11-17
    • 2010-09-15
    • 1970-01-01
    • 2014-12-14
    • 2018-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多