如果* .pyc文件存在,我想删除目录中的所有* .py文件。 例如:
我使用的是ubuntu 12.04和centos 7 OS。
答案 0 :(得分:2)
您可以使用Python的os.walk
函数,并创建一组匹配的文件扩展名,如下所示:
import os
root = r'/root/folder'
for dirpath, dirnames, filenames in os.walk(root):
py_files = set()
pyc_files = set()
for file in filenames:
name, ext = os.path.splitext(file)
if ext == '.py':
py_files.add(name)
if ext == '.pyc':
pyc_files.add(name)
for file in py_files.intersection(pyc_files):
delete_file = os.path.join(dirpath, file + '.py')
print 'Removing - {}'.format(delete_file)
os.remove(delete_file)
两组相交时,可以删除文件。
答案 1 :(得分:1)
使用os walk迭代目录并添加路径,然后确定它是否有py和pyc文件,然后相应地删除py文件。
可能有一些错误,但你可以从这里找出答案
from os import walk,remove
mypath = "yourpath"
f = []
for (dirpath, dirnames, filenames) in walk(mypath):
f.extend(map(lambda filename:(dirpath)+filename,filenames))
f=sorted(f)
for i in f:
if i.endswith(".py"):
if i+"c" in f:
remove(i)