python fileinput模块重置位置

时间:2014-01-21 07:33:08

标签: python file file-io

我需要将文件循环两次。第一次检查是否有一些关键词。 第二次根据之前的检查结果将一些信息附加到文件中。

我使用fileinput模块,因此我可以使用fileinput.lineno()来决定添加我的信息的哪一行。

fileinput的典型用法是

import fileinput
for line in fileinput.input():
    process(line)

所以我必须打开文件两次。

我的文件是这样的

#define XXX YYYY     ------->at least one #define in my file
extern int AW_Function1();   --------> may have many AW functions or no AW functions
extern int AW_Function2();
extern int AW_Function3();

我的文件中有AW关键字或完全没有AW功能的函数。我需要用我的代码检查一下。

这就是我所拥有的

for line in fileinput.input('file1.txt'):
    if '#define' in line:   # there is at least one '#define' in that file
        writePoint = fileinput.lineno() + 1                  
    elif 'AW' in line:
        writePoint = fileinput.lineno() + 1 

for line in fileinput.input('file1.txt'):
    if writePoint == fileinput.lineno() :
        ###generate a new line here
        print new_line
    print line,
open返回的

文件对象不提供行号并且具有fseek函数用于重新定位,而fileinput模块具有行号但没有{ {1}}功能。

只打开一个文件,有更好的方法吗?

0 个答案:

没有答案