【发布时间】:2016-05-13 07:36:14
【问题描述】:
我有 20 个文件。我想通过匹配模式 '<script src="{%.*%}>' 从这 20 个文件中提取行并将这些行写入新文件。
我还想从原始文件中删除这些行。
除了我尝试过的很糟糕的方法之外,还有更好的方法吗?
这是我的尝试:
import os
import sh
folder_path='/home/username/folder/'
match_phrase = '<script src="{%'
new_file = '/home/username/file.txt'
files = os.listdir(folder_path)
print files
for file in files:
full_filename = folder_path + file
lines=[]
line_nos=[]
with open(full_filename) as myFile:
for num, line in enumerate(myFile, 1):
if match_phrase in line:
line_nos.append(num)
lines.append(line)
print lines
print line_nos
with open(new_file,'a') as newfile:
for line in lines:
newfile.write(line)
for del_line in line_nos:
print "deleting line %s from file=%s"%(del_line,full_filename)
del_line=str(del_line)+'d'
sh.sed('-i',del_line,full_filename)
【问题讨论】:
-
请向我们展示您解决此特定问题的尝试,如果您正在寻找可以为您提供现成代码和教程的平台,堆栈溢出可能是错误的。
-
是的。我已经在尝试了。如果我能解决它会发布解决方案。
-
您需要发布您的尝试以获得他人的帮助
-
我认为对于这样的一般性问题,人们会有方便的解决方案。因此,如果有人之前已经解决了这个问题并且不介意分享,那么我可以节省一些时间。如果没有,那么我无论如何都会尝试一下。