【发布时间】:2021-02-12 02:00:51
【问题描述】:
我有一个目录 (client_dir),其中包含一个名为“XXX - 长客户端名称”的文件夹
我想将文件夹的全名(“XXX - 长客户端名称”)保存为名为 client_name 的变量。我可以通过匹配前 3 个字符 (XXX) 来搜索“XXX - Long client name”。我在其他地方找到了这 3 个字符。
我尝试使用 re 模块,但我不知道如何获取实际的完整字符串。它只返回“XXX”。
for closeout in os.listdir(closeout_dir):
project_id = closeout[:8]
client = project_id[0:3]
for x in os.listdir(client_dir):
client_name = re.search(client,x)
print(client_name)
print(type(client_name))
输出:
<re.Match object; span=(0, 3), match='XXX'>
<class 're.Match'>
XXX
我遇到的另一个问题是,当我向client_dir 添加另一个名为“YYY-另一个客户端名称”的文件夹时,它再也找不到我的“XXX - 长客户端名称”文件夹了。输出是:
None
<class 'NoneType'>
【问题讨论】:
-
虽然在这种情况下您可能根本不需要正则表达式,只需使用 Does Python have a string 'contains' substring method? - Stack Overflow
-
像这样检查
if closeout[:3] == 'XXX': long_client_name = closeout[6:]。这应该可以解决您的问题