使用Python删除仅包含数字且没有文件扩展名的文件

-1 投票
3 回答
44 浏览
提问于 2025-04-14 18:32

我写了一个Python脚本,用pyinstaller打包后,可以把任何类型的文件存储到MySql数据库里。每个文件都有一个特定的文件编号(唯一的ID),而且文件名没有扩展名。打包后的可执行文件也没有扩展名。这个Python脚本如下:

        cursor.execute("SELECT DOC_COPY FROM DOC_STORE WHERE DOC_ID=%s", (docID, ))
        docCopy = cursor.fetchone()[0]
        cursor.close()
        conn.close()
        docPath = Path.cwd().joinpath("%s"%docID)
        writeTofile(docCopy, docPath)
        subprocess.run(['open',docPath], check=True)

这个脚本运行得很好。每当选择一个文档查看时,都会根据文档ID保存一份副本,文件名也是没有扩展名的数字。现在我想在软件关闭时,删除文件夹里所有这些文件(文件名只包含数字的)。

我在网上搜索过,但没有找到答案。

3 个回答

-1

你可以使用glob这个工具来找到你想删除的特定文件:

import glob
import os

for f in glob.glob("/desired/dir/+([0-9])"):
    # [0-9] is the digit range, and +() indicates 1 or more digits
    os.remove(f)

在你程序的最后运行这个,它应该能正常工作。

-1

你可以使用're'(正则表达式)来列出和筛选目录中的文件,然后删除那些符合你条件的文件。

    numeric_filename_pattern = re.compile(r'^\d+$')
0

这个问题不是很清楚,不过如果你的需求是这样的:

我想在软件关闭时,删除文件夹中所有文件名只包含数字的文件。

要在软件关闭时,从指定的文件夹中删除所有文件名只包含数字的文件,可以使用以下代码:

import os
import shutil

def cleanup_folder():
    folder_path = Path.cwd()  # Change this to the folder path where the files are stored
    for filename in os.listdir(folder_path):
        if filename.isdigit():
            file_path = folder_path.joinpath(filename)
            if os.path.isfile(file_path):
                os.remove(file_path)

atexit.register(cleanup_folder)

撰写回答