Javascript 如何在python中使用sed?
我相信一定有更明智的方法来实现这一点。在使用闭包缩小应用程序之前,我需要更改javascript中的应用程序id 我想出的一个“快速”解决方案是使用好的旧sed。虽然这可以在命令行上运行,但在python文件中运行时失败。它不会因为错误而失败。outfile文件是源文件的精确副本。好像它还没有找到文本Javascript 如何在python中使用sed?,javascript,python,sed,Javascript,Python,Sed,我相信一定有更明智的方法来实现这一点。在使用闭包缩小应用程序之前,我需要更改javascript中的应用程序id 我想出的一个“快速”解决方案是使用好的旧sed。虽然这可以在命令行上运行,但在python文件中运行时失败。它不会因为错误而失败。outfile文件是源文件的精确副本。好像它还没有找到文本 choice = raw_input("Type 1 (Staging) or 2 (Production)?") if choice == '1': cmd = r"sed
choice = raw_input("Type 1 (Staging) or 2 (Production)?")
if choice == '1':
cmd = r"sed 's%var appid = '1234';%var appid = '5678';%' {0}f11.js > {0}f11_final.js".format(PATH)
os.system(cmd)
知道我错过了什么吗?谢谢
更新:
我刚刚更改了以下来源:
var appid = '1';
为此:
var appid = 1;
并成功地运行了此操作:
cmd = "sed -i 's%var appid = 1;%var appid = 2;%' {0}f11.js".format(PATH)
它与转义单引号有关。你知道我能做什么吗?我尝试了\'
,但失败了
解决方案:
我最终按照建议用python完成了这项工作。如果你以前没做过,那就不容易了。所以我分享我的代码:
with open("{0}f11.js".format(PATH), "r") as sources:
lines = sources.readlines()
with open("{0}f11-final.js".format(PATH), "w") as sources:
for line in lines:
sources.write(re.sub("var appid = '1';", "var appid = '2';", line))
您可以使用Python库。特别是类似于sed的函数sub。是否应该转义正则表达式中的
“
?是否确定?这适用于me-os.system(r“echo”var-appid=1234;“| sed”s%var-appid='1234';%var-appid='5678';%”),如果我这样转义它,它会抛出sh:1:语法错误:未终止的引号字符串
:“sed的%var appid=\'1234\';%变量appid=\'5678\';%'代码>@user1827356你试过了吗?它是一个文件?我只是在没有luckWorks的情况下验证了几次,在Python 2.7.1和GNU bash版本3.2.25(1)中效果良好