如果 "a.pyc" 个文件存在则删除 "a.py" 个文件
if "a.pyc" file exist then delete "a.py" file
如果*.pyc 文件存在,我想删除目录中的所有*.py 文件。
例如:
我用的是ubuntu12.04和centos 7OS。
使用 os 遍历目录并添加路径,然后确定它是否有 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)
您可以使用 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)
两组相交的地方,可以删除文件。
如果*.pyc 文件存在,我想删除目录中的所有*.py 文件。
例如:
我用的是ubuntu12.04和centos 7OS。
使用 os 遍历目录并添加路径,然后确定它是否有 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)
您可以使用 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)
两组相交的地方,可以删除文件。