使用Python删除仅包含数字且没有文件扩展名的文件
我写了一个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)