Python在文件中查找字符串,编辑行并保存到新文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python在文件中查找字符串,编辑行并保存到新文件相关的知识,希望对你有一定的参考价值。

我正在尝试浏览一个文本文件,找到所有以'file ='开头的行。当我找到这些行时,我想删除点之间的所有文本,最后将其保存为新文件。

这样的线条看起来像这样

文件= “形象。&!145.jpg”

我现在坚持到我要么:

  • 删除整个文件中点之间的文本(而不仅仅是以'file ='开头的行)
  • 删除仅以'file ='开头的行之间的点之间的文本,但我最终只在新文档中保存该单行。

这是我到目前为止的代码:

import os
from os.path import basename
from re import sub


file_in = 'tex_file_01.txt'
file_out = 'tex_file_01_new.txt'


with open(file_in, 'r') as f_in:
    with open(file_out, 'w') as f_out:
        for line in f_in:
            if 'file=' in line:
                print 'found: ' + line

            line_fix = sub('..*?.', '.', line)
            print 'fixed: ' + line_fix

            f_out.write(line.replace(line, line_fix))

上面的代码删除整个文件中的点之间的文本。

有任何想法吗?提前致谢!

答案

试试吧。我看到的错误是只编辑条件时进入的那部分。您正在编辑所有文件行。

import os
from os.path import basename
from re import sub


file_in = 'tex_file_01.txt'
file_out = 'tex_file_01_new.txt'


with open(file_in, 'r') as f_in:
    with open(file_out, 'w') as f_out:
        for line in f_in:
            if 'file=' in line:
                print 'found: ' + line
                line_fix = sub('..*?.', '.', line)
            else:
                line_fix = line
            print 'fixed: ' + line_fix

            f_out.write(line.replace(line, line_fix))

以上是关于Python在文件中查找字符串,编辑行并保存到新文件的主要内容,如果未能解决你的问题,请参考以下文章

python 在列表中查找包含所以某个字符串的项,并保存到一个新的列表

查找长于x个字符的行并截断显示

C ++从文本文件中读取行并编辑

Python基础(字符编码与文件处理)

在文件中查找重复行并计算每行重复了多少次?

python之-------字符编码具体原理