python文件输入模块重置位置

2024-09-29 23:29:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我使用fileinput模块,这样我就可以有一个fileinput.lineno()来决定在哪一行中添加我的信息。在

fileinput的典型用法是

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

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

我的档案是这样的

^{pr2}$

我的文件中有带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返回的file对象不提供行号,并且具有用于重新定位的fseek函数,而fileinput模块有一个行号,但没有fseek函数。在

有没有更好的方法只打开一个文件?在


Tags: 模块文件函数intxt信息forinput

热门问题