如果存在“a.pyc”文件,则删除“a.py”文件

时间:2015-11-27 08:39:29

标签: python file ubuntu centos

如果* .pyc文件存在,我想删除目录中的所有* .py文件。 例如: enter image description here

我使用的是ubuntu 12.04和centos 7 OS。

2 个答案:

答案 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)