我需要读取一个文件并删除所有内容,直到某个字符串出现。它很简单,我写的代码,但它不工作。它返回文件的全部内容。你知道吗
我的输入文件:
/****************************************************************
*
* Function Name: ab
* Input Parameter: cd
* output Parameter: ef
* Return Value: hi
*
****************************************************************/
#include "file_a.h"
#include "file_b.h"
static inline function(int a, int b){
...
...
...
...
}
我必须删除所有内容,直到:
static inline function(int a, int b){
所以这个语句将是新文件的第一行。你知道吗
我的代码
TAG = 'static'
def delete_until(fileName,outfile):
tag_found = False
with open ('output.txt',"w") as out:
with open(fileName,'r') as f:
for line in f:
if not tag_found:
if line.strip() == TAG:
tag_found = True
else:
out.write(line)
if __name__ == '__main__':
fileName = 'myfile.txt'
outfile = 'output.txt'
delete_until(fileName,outfile)
新文件再次包含了全部内容。我做错了什么?你知道吗
使用^{} :
如果你在分析代码文件,它们通常足够小,可以载入内存。此时,一个
string.find
调用就可以完成。你知道吗它写道:
到
output.txt
。你知道吗如果
static
可能出现在实际的static
函数之前的注释中,并且假设您正在分析的代码文件是由理智的人编写的,您可以检查关键字前面是否有换行符。唯一的变化是:Credit to JFF。你知道吗
由于此测试,您的代码失败:
您这样定义
TAG
的内容:但你刚才读到的一句话是:
这意味着不能仅使用
==
运算符进行比较。根据您的需求,可以更改TAG
的值以匹配您正在搜索的内容(这是最明智的做法,因为注释中的static
也会匹配),或者更改查找该字符串的方式。你知道吗相关问题 更多 >
编程相关推荐