我有一个包含多个文件的目录,我只想grep test.uwsgi.log
个文件并删除.uwsgi.log部分。在greping名称之后,我将它存储在输出文件中。
这是我得到的:
import subprocess
testlist = “cd /root/test/ && ls | grep ‘uwsgi.log' |sed 's/\.uwsgi.log\>//g' > /root/test/testlist.txt"
output = subprocess.check_output(['bash','-c', testlist])
,输出为:
test1
test2
test3
有人可以教我如何在没有子进程模块的情况下实现这一目的并仅使用python吗?
答案 0 :(得分:1)
单独使用Python:
import os
for _, dirs, files in os.walk('/root/test/'):
with open('output.txt', 'w') as out_file:
out_file.writelines("{}\n".format(f) for f in files if f.endswith('uwsgi.log'))
output.txt符合预期:
test1
test2
test3
注意我在列表推导中为每个元素添加了\n
。因为writelines
不会自动执行此操作。