gpt4 book ai didi

python - 使用关于文件名的正则表达式从目录中删除某些文件

转载 作者:行者123 更新时间:2023-12-01 08:48:48 30 4
gpt4 key购买 nike

在这里,我正在尝试创建一个代码,该代码将根据掩码删除文件夹中的文件。所有包含 17 的文件都应该删除 文件名格式是 ??_????17*.*,在哪里? - 任何符号 1..n、A..z、_ 和 17 - 都在任何文件中(其他文件也包含 18),其扩展名无关紧要。文件 AB_DEFG17Something.Anything 的某些示例 - Copy (2).txt

import os
import re

dir_name = "/Python/Test_folder" # open the folder and read files
testfolder = os.listdir(dir_name)

def matching(r, s): # condition if there's nothing to match
match = re.search(r, s)
if match:
return match.group()
return "Files don't exist!"

matching(r'^\w\w\[_]\w\w\w\w\[1]\[7]\w+\[.]\w+', testfolder) # matching the file's mask

for item in testfolder.index(matching):
if item.name(matching, s):
os.remove(os.path.join(dir_name, item))

# format of filenames not converted : ??_????17*.*
# convert for python separarately : [\w][\w][_\w][\w][\w][\w]\[1]\[7][\w]+[\.][\w]+
# ? - Any symbol 1..n,A..z \w repeating is *
# * - Any number of symbols 1..n, A..z
# _ and 17 - in any files `

也有一些错误。

File "D:\Python\Test_folder\Remover v2.py", line 14, in matching(r'\w\w[_]\w\w\w\w[1][7]\w+[.]\w+', testfolder) # matching the file's mask  File "D:\Python\Test_folder\Remover v2.py", line 9, in matching match = re.search(r, s) File "c:\Program Files (x86)\Wing IDE Personal 6.0\bin\runtime-python2.7\Lib\re.py", line 146, in search return _compile(pattern, flags).search(string)



我是初学者,并希望通过业余方法获得 PY、并行学习细节方面的经验。我究竟做错了什么?任何帮助都会有用。谢谢

最佳答案

不要重新发明轮子,而是使用 glob() 代替:

import os
from glob import glob

for file in glob('/Python/Test_folder/AB_CDEF17*.*'):
os.remove(file)

关于python - 使用关于文件名的正则表达式从目录中删除某些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48365055/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com