簡體   English   中英

蟒蛇; 如何替換字符串模式並保存到文件中,如何使用字符串變量將文件名從文件夾名重命名為文件名?

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

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