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

2024-04-19 11:05:30 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我使用ubuntu 12.04和centos 7操作系统。在


Tags: 文件py目录ubuntupyccentos
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)

如果两个集合相交,则可以删除该文件。在

使用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)

相关问题 更多 >