【问题标题】:Python Script to Replace text in template file with value from a list用列表中的值替换模板文件中的文本的 Python 脚本
【发布时间】:2021-05-22 11:46:58
【问题描述】:

这对你们大多数人来说可能只是一瞬间,但我正在学习。

我正在编辑多个网页,并想编辑顶部的一行并在其中插入一个值,其中包含一个列表中的项目。

然后移动到列表中的下一项并使用该项目编辑模板文件并移动到下一项。我已经在这里阅读了几个小时,但找不到解决方案。请有人帮忙。

目前的文件结构为: websitetemplate.asp(顶部有一行带有“SKU”的行,这是要编辑的部分。 sku_list.txt(这有多个值,我想将它们插入模板并保存每个值。

【问题讨论】:

  • 我在帮你。没那么难。如果你使用 UNIX,我可以给你一个简短的命令来做到这一点
  • 你用的是windows还是linux?
  • 使用 windows 10 但可以访问 UNIX。如果可能的话,我希望使用 Python,因为我正在尝试自学它。
  • 您可以将 UNIX 命令与 python 结合使用。试试看:
  • 杜-a | awk '{打印 $2}' | grep '\.html$' 可以返回所有的 html 文件。使用 python,您可以列出所有文件并使用 ed 附加该文件

标签: python list text replace


【解决方案1】:

这是一个快速的 python 解决方案:

with open('sku_list.txt', 'r') as skusfile:
    for sku in skusfile.read().split('\n'):
        with open("websitetemplate.asp", 'r') as templatefile:
            template = templatefile.read()
        with open(f"{sku}.asp", 'w+') as writefile:
            writefile.write(template.replace('[replacekeyword]', sku))

它会打开您的列表并用换行符将其拆分(插入您之间的任何运算符)。

然后它会打开网站模板并将其保存在template 变量中。

最后,你用 skulist 中的不同值替换你拥有的任何替换关键字,并将它们分别写入自己的文件中。

【讨论】:

  • 谢谢你。输出接近我所追求的 - 它创建新文件名作为 SKU,但它不会更改文件中的值 SKU - 这有意义吗?
  • 如果是你要找的,请接受答案:)
  • 如何编辑“网站模板”中的字符串,该字符串当前读取“SKU”,其值与该页面的名称相同?否则我有很多不同的命名页面,但它们都是相同的。
  • 您将 [replacekeyword] 替换为 SKU
  • writefile.write(template.replace('SKU', sku))
猜你喜欢
  • 2016-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-19
  • 1970-01-01
  • 2016-04-01
  • 2011-02-26
相关资源
最近更新 更多