是的,我对 Python 比较陌生,您可能会在我的代码中看到它,但是有没有办法遍历正则表达式中的列表?
基本上,我正在遍历文件夹中的每个文件名,从文件名中获取代码(2-6 位),并且我想将它与文本文件中的代码列表进行比较,这些代码附加了名称,格式为“1234_Name”(不带引号)。如果代码在两个列表中都存在,我想打印出列表条目,即 1234_Name。目前我的代码似乎只查看文本文件列表中的第一个条目,我不知道如何让它通过它们来查找匹配项。
import os, re
sitesfile = open('C:/Users/me/My Documents/WORK_PYTHON/Renaming/testnames.txt', 'r')
filefolder = r'C:/Users/me/My Documents/WORK_PYTHON/Renaming/files/'
sites = sitesfile.read()
site_split = re.split('\n', sites)
old = []
newname = []
for site in site_split:
newname.append(site)
for root, dirs, filenames in os.walk(filefolder):
for filename in filenames:
fullpath = os.path.join(root, filename)
filename_split = os.path.splitext(fullpath)
filename_zero, fileext = filename_split
filename_zs = re.split("/", filename_zero)
filenm = re.search(r"[\w]+", str(filename_zs[-1:]))#get only filename, not path
filenmgrp = filenm.group()
pacode = re.search('\d\d+', filenmgrp)
if pacode:
pacodegrp = pacode.group()
match = re.match(pacodegrp, site)
if match:
print site
希望这是有道理的 - 提前非常感谢!