簡體   English   中英

解析為 Python 中的文件名定義用戶指定格式的字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM