そうです、私は 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
これが理にかなっていることを願っています - 事前に感謝します!