如果 "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)

两组相交的地方,可以删除文件。