2024-09-28 22:20:04 发布
网友
我使用os.listdir(d)列出文件夹中的所有文件。有一些奇怪的名字,比如
os.listdir(d)
['ᅳ', 'ᅴ', 'ᅵ', '¢', '£', '¬', ' ̄', '¦', '¥', '₩', '←', '↑', '→', '↓', '■', '○', '\ufff9', '\ufffa', '\ufffb', '']
你能提出一些想法来过滤掉它们吗
您可以准备一个可接受字符的列表,例如:
acceptables = r'[_,.-]'
然后查看当删除这些字符时,哪些路径名是完全字母数字的:
import os, re [x for x in os.listdir('.') if re.sub(acceptables, '',x).isalnum()]
请注意,方括号“[]”是定义要忽略的字符集所必需的,它们不是该集的一部分
您可以在列表上应用筛选器,以仅授权常用字符。 诸如此类:
import os import re directories = os.listdir('.') # Before filter print(directories) # Filtered d = list(filter(lambda x: re.match("[a-zA-Z\d\_\-]+", x), directories)) print(d) Output: Before filter: ['main.py', '¥'] Filtered: ['main.py']
您可以准备一个可接受字符的列表,例如:
然后查看当删除这些字符时,哪些路径名是完全字母数字的:
请注意,方括号“[]”是定义要忽略的字符集所必需的,它们不是该集的一部分
您可以在列表上应用筛选器,以仅授权常用字符。 诸如此类:
相关问题 更多 >
编程相关推荐