Python 如何筛选出由“异常名称”导致的异常名称;os.listdir";
我使用Python 如何筛选出由“异常名称”导致的异常名称;os.listdir";,python,string,unicode,Python,String,Unicode,我使用os.listdir(d)列出文件夹中的所有文件。有一些奇怪的名字,比如 ['ᅳ', 'ᅴ', 'ᅵ', '¢', '£', '¬', ' ̄', '¦', '¥', '₩', '←', '↑', '→', '↓', '■', '○', '\ufff9', '\ufffa', '\ufffb', ''] 请您提出过滤掉这些字符的建议好吗?您可以在列表上应用过滤器,只授权普通字符。 诸如此类: import os import re directori
os.listdir(d)
列出文件夹中的所有文件。有一些奇怪的名字,比如
['ᅳ',
'ᅴ',
'ᅵ',
'¢',
'£',
'¬',
' ̄',
'¦',
'¥',
'₩',
'←',
'↑',
'→',
'↓',
'■',
'○',
'\ufff9',
'\ufffa',
'\ufffb',
'']
请您提出过滤掉这些字符的建议好吗?您可以在列表上应用过滤器,只授权普通字符。 诸如此类:
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']
您可以准备一个可接受字符的列表,例如:
acceptables = r'[_,.-]'
然后查看当删除这些字符时,哪些路径名是完全字母数字的:
import os, re
[x for x in os.listdir('.') if re.sub(acceptables, '',x).isalnum()]
请注意,方括号“[]”是定义要忽略的字符集所必需的,它们不是该字符集的一部分。为什么要筛选它们?显然那个目录里有一些名字很奇怪的文件。奇怪的名称是否会使这些文件无法执行任何您想要执行的处理?@user2357112supportsMonica我知道这些文件的内容不符合我的条件。所以我过滤掉它们以节省计算。你怎么知道的?要处理的文件是否具有与某些模式匹配的名称?如果是这样,您可能希望使用该模式来执行筛选。如果您不指定“怪异”名称的条件,我们无法帮助您使用筛选出这些名称的代码。