我需要通过使用python插入一个字符串来更改javascript文件的一个特定部分。这里是javascript文件的一个小示例。
//----------------------------------------Peter Lighting Priorities-----------------------------------------------------
/*
// Lighting low prios for everything else//
peter_RenderBoy_lighting_lowPrios = {
"fromProductionGroups" : ["peter_RenderBoy_lighting"],
"matchFilters" : [
{"user": "", "name": ""}
],
"toProductionGroup" : "",
"priority" : 3
};
moveAndPrioritise(peter_RenderBoy_lighting_lowPrios);
// lighting normal and Approved LFL shots (emailed at 8pm) //
peter_RenderBoy_lighting_normalPrios = {
"fromProductionGroups" : ["peter_RenderBoy_lighting"],
"matchFilters" : [
{"user": "", "name": ""}
],
"toProductionGroup" : "",
"priority" : 2
};
moveAndPrioritise(peter_RenderBoy_lighting_normalPrios);下面是同样的javascript示例,它以粗体显示字符串"INSERT_STRING_HERE“,需要插入该字符串:
//----------------------------------------Peter Lighting Priorities-----------------------------------------------------
/*
// Lighting low prios for everything else//
peter_RenderBoy_lighting_lowPrios = {
"fromProductionGroups" : ["peter_RenderBoy_lighting"],
"matchFilters" : [
{"user": "", "name": ""}
],
"toProductionGroup" : "",
"priority" : 3
};
moveAndPrioritise(peter_RenderBoy_lighting_lowPrios);
// lighting normal and Approved LFL shots (emailed at 8pm) //
peter_RenderBoy_lighting_normalPrios = {
"fromProductionGroups" : ["peter_RenderBoy_lighting"],
"matchFilters" : [
{"user": "", "name": "***INSERT_STRING_HERE***"}
],
"toProductionGroup" : "",
"priority" : 2
};
moveAndPrioritise(peter_RenderBoy_lighting_normalPrios);到目前为止,这只是我的尝试,这仅仅表明我已经导入了regex,但是由于放弃了我的努力,并且试图遍历javascript文件,但是不知道如何继续实现我所需要的:
import re
javascript_file = open('/depts/wranglers/frankie/farmtools/priorities/autoHook.js')
for line in javascript_file:
if '// lighting normal and Approved LFL shots (emailed at 8pm) //' in line:发布于 2017-11-18 00:49:34
当您看到注释行时,设置一个变量。然后,当您看到要替换的模式的行时,检查变量是否已设置,并执行替换操作。
with open('/depts/wranglers/frankie/farmtools/priorities/autoHook.js') as javascript_file, \
open('/depts/wranglers/frankie/farmtools/priorities/autoHook.new.js') as new_file
section_found = False
for line in javascript_file:
if '// lighting normal and Approved LFL shots (emailed at 8pm) //' in line:
section_found = True
elif '{"user": "", "name": ""}' and section_found:
line = line.replace('"name": ""', '"name": "INSERT_STRING_HERE"')
section_found = False
new_file.write(line + "\n")https://stackoverflow.com/questions/47361256
复制相似问题