[英]Python; how to replace string pattern and save to a file, rename the file by string variable from folder name to the filename?
對於文件系統中的每個產品,我都有自己的文件夾;
/PRODUCTS/PRODUCT_XXX
/PRODUCT_001
/PRODUCT_002
/PRODUCT_003
/PRODUCT_004
/PRODUCT_005
...
/PRODUCT_999
每個文件夾都有PRODUCT_XXX.html文件以及產品圖片和數據...
我不會重新制作所有PRODUCT_XXX.html文件,
如果我想更改html的布局...
我想在根文件夾中有一個PRODUCT_XXX.html文件,
/PRODUCTS/PRODUCT_XXX.html
然后將其復制到所有產品編號文件夾,僅替換模式XXX->文件夾名稱中的產品編號
prodnum = "555" # Actually, would need to read the Product Number from the OS
folder name..
# But will do that later, after I get this on the below working...
f1 = open('PRODUCT_XXX.html', 'r')
f2 = open('/PRODUCT_%D/PRODUCT_%D.html', prodnum, 'w' )
for line in f1:
f2.write(line.replace('PRODUCT_XXX', 'PRODUCT_%D', prodnum))
# (then later could do also other things here..)
f1.close()
f2.close()
我正在嘗試%D,%s ...,但是無法保存PRODUCT_555.html文件。如何通過字符串變量名保存文件? 嘗試給谷歌一些例子,但那些似乎很難找到。
您缺少%
,例如
f2.write(line.replace('PRODUCT_XXX', 'PRODUCT_%d' % prodnum)) # note lowercase d
但這使用str.format
會更清楚str.format
不易出錯:
f2.write(line.replace('PRODUCT_XXX', 'PRODUCT_{0}'.format(prodnum)))
你要這個:
f2 = open('/PRODUCT_{0}/PRODUCT_{0}.html'.format(prodnum), 'w')
如果我有一個index_numbers.txt,其中數字1、2、3、4、5、6,... 1000一行中有一個數字;
import shutil
file_read = open("index_numbers.txt", 'r')
def do_the_thing(indexnum):
print(indexnum)
file1 = open("fileXXX.html", 'r')
file2 = open("file{0}.html".format(indexnum), 'wb')
for line in file1:
file2.write(line.replace('XXX', '%s' % indexnum))
file1.close()
file2.close()
line_from_file = file_read.readline()
for line_from_file in file_read:
print(line_from_file)
line_from_file = line_from_file[0:-1]
indexnum = line_from_file
shutil.copy2('fileXXX.html', 'file{0}.html'.format(indexnum))
do_the_thing(indexnum)
file_read.close()
那樣的事情會起作用嗎?
但是,如果要替換文件中的更多文本字段,如何修改此腳本;
- replace the XXX with the index number
- replace the YYY with Product short name
- replace the ZZZ with Product long name
- ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.