#只要有算法,用什么都可以。josephyoung 写了:fanhe 写了:不喜欢shell了,脚本现在都直接写 python这个问题,带嵌套的,能写个python玩玩么?我也在学python中
求助:文本文件匹配删除
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 求助:文本文件匹配删除
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
-
- 帖子: 919
- 注册时间: 2009-07-01 22:04
Re: 求助:文本文件匹配删除
kose3@kose3-desktop:~$ cat tmp2.py
#!/usr/bin/env python
import sys
delete=0
file_source = open(sys.argv[1])
for line in file_source.readlines():
if line.strip().startswith("ifneq ("): delete = delete + 1
if delete == 0: print line,
if line.strip() == "endif": delete = delete - 1
file_source.close
#极少写python,指正指正。
#!/usr/bin/env python
import sys
delete=0
file_source = open(sys.argv[1])
for line in file_source.readlines():
if line.strip().startswith("ifneq ("): delete = delete + 1
if delete == 0: print line,
if line.strip() == "endif": delete = delete - 1
file_source.close
#极少写python,指正指正。
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
- fanhe
- 帖子: 2357
- 注册时间: 2007-03-24 23:45
Re: 求助:文本文件匹配删除
楼主你说清楚你的需求吧,我自己是用c 写过 c 的预处理算法的,这种跟c 的预处理差不多,嵌套的分支不是这么简单的
你至少需要一个条件栈,每遇到 ifneq 就添加一个条件,只有当栈里面的所有的条件都是真时,正在读取的文本才不被忽略
你至少需要一个条件栈,每遇到 ifneq 就添加一个条件,只有当栈里面的所有的条件都是真时,正在读取的文本才不被忽略
- josephyoung
- 帖子: 158
- 注册时间: 2011-11-05 18:53
- 来自: 南极圈
Re: 求助:文本文件匹配删除
fnan 写了:kose3@kose3-desktop:~$ cat tmp2.py
#!/usr/bin/env python
import sys
delete=0
file_source = open(sys.argv[1])
for line in file_source.readlines():
if line.strip().startswith("ifneq ("): delete = delete + 1
if delete == 0: print line,
if line.strip() == "endif": delete = delete - 1
file_source.close
#极少写python,指正指正。

[python]#!/usr/bin/env python
import sys
delete = 0
file_source = open(sys.argv[1])
for line in file_source:
if line.strip().startswith("ifneq ("):
delete +=1
if delete == 0:
print line,
if line.strip() == "endif":
delete -= 1
file_source.close()
[/python]