[英]Parse string that defines a user-specified format for a file name in Python?
我試圖讓用戶定義一個字符串,例如'%X/%P_%D_%d.txt'
,其中每個格式代碼%X
對應於 Python 中的給定變量。 然后使用此格式指定文件名和路徑。 解析類似於 datetime 的 strptime(),但它們似乎具有相當嚴格的基本結構,並通過正則表達式來完成。 我正在考慮將格式代碼和變量與字典聯系起來,即
fdict = {r'%X' : 'X001', r'%P' : 'Part5', r'%D' : 1, r'%d' : 2}
(這些值只是變量的占位符)。 但老實說,找不到任何類似的例子,而且似乎正則表達式可能不是解決這個問題的正確方法。 有沒有可以工作的模塊? 還是更好的關鍵字?
f-string 在這里可能很好用:
fdict = {r'%X' : 'X001', r'%P' : 'Part5', r'%D' : 1, r'%d' : 2}
filename = f"{fdict['%X']}/{fdict['%P']}_{fdict['%D']}_{fdict['%d']}.txt"
print(filename) # X001/Part5_1_2.txt
您還可以將re.sub
與回調 function 一起使用:
fdict = {r'%X' : 'X001', r'%P' : 'Part5', r'%D' : '1', r'%d' : '2'}
filename = "%X/%P_%D_%d.txt"
regex = r'|'.join(fdict.keys())
output = re.sub(regex, lambda m: fdict[m.group()], filename)
print(output) # X001/Part5_1_2.txt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.