0
當去除目標的最後一行我用數據RTF模板我收集:Python的 - 附加
{\rtf1\ansi\deff0 {\fonttbl {\f0 Monotype Corsiva;}}
\f0\fs28 Here be %(data)s
}
我有追加操作一個單獨的模板,就像上面沒有第一線。
挑戰在於,當文件被創建時,稍後可能會有相同文件名的其他數據。可以將數據附加到文件,但如果文件存在,我還沒有找到擺脫「}」EOF語法的方法。下面是附加的數據不刪除的最後一行代碼:
rtf_filename = time.strftime("%d") + ".rtf" # rtf filename in date format
template = open("template.rtf").read() # rtf template
template_append = open("template_append.rtf").read() # rtf append template
data_source = {"data": "test_data"} # just a string to keep this simple
if os.path.isfile(rtf_filename) is True: # RTF file might exist
with open(rtf_filename, "a") as f:
f.write(template_append % data_source)
else:
with open(rtf_filename, "w") as f:
f.write(template % data_source)
上面的代碼文件輸出:
{\rtf1\ansi\deff0 {\fonttbl {\f0 Monotype Corsiva;}}
\f0\fs28 Here be test_data
}\f0\fs28 Here be test_data # line where "}" should be removed
}
感謝您的幫助。
我不知道這個地方應該應用,因爲我不明白正是你在做什麼,但'new_template = template [:template.rfind('}')]'爲你工作?它採用模板並刪除最後一個括號到字符串末尾的所有內容。 –
謝謝,這正是我試圖實現的目標,但不知道應該在哪裏實施。 – strongbad