一些注意事项:
string.replace
并且re.sub
不在位,因此您应该将返回值分配回变量。glob.glob
更好地在目录中查找与已定义模式匹配的文件…- 也许您应该在创建目录之前检查该目录是否已经存在(我只是假设这样做,这可能不是您想要的行为)
- 该
with
语句负责以安全的方式关闭文件。如果您不想使用它,则必须使用try
finally
。 - 在您的示例中,您忘记放置sufix
*.clean
;) - 您在没有实际写入文件的地方,可以像我在示例中所做的那样使用
fileinput
模块或使用模块(直到今天我还不知道)
这是我的例子:
import reimport osimport globsource_dir=os.getcwd()target_dir="clean"source_files = [fname for fname in glob.glob(os.path.join(source_dir,"*.seq"))]# check if target directory exists... if not, create it.if not os.path.exists(target_dir): os.makedirs(target_dir)for source_file in source_files: target_file = os.path.join(target_dir,os.path.basename(source_file)+".clean") with open(source_file,'r') as sfile: with open(target_file,'w') as tfile: lines = sfile.readlines() # do the replacement in the second line. # (remember that arrays are zero indexed) lines[1]=re.sub("K|Y|W|M|R|S",'N',lines[1]) tfile.writelines(lines)print "DONE"
希望能帮助到你。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)