我正在尝试使用执行sed系统调用的python脚本替换.h文件中的某些字符。你知道吗
这是variables\orig.h中的一行,我希望用数组中的值替换其中的“10”:
#define PACKET_DELAY_TIME_A 10
如果我在bash中运行sed命令,那么
sed -E 's/(#define PACKET_DELAY_TIME_A).*/\1 2/' variables\ orig.h > variables.h
这完全正常,输出如预期,即“10”替换为“2”
但是,当我使用python系统调用来实现它时,例如
import os
pckt_delay_A = ["1","2","5","10","20"]
command = "sed -E 's/(#define PACKET_DELAY_TIME_A).*/\1 " + pckt_delay_A[1] + "/' variables\ orig.h > variables.h"
os.system(command)
这将生成SOH字符,而不是预期的“#define PACKET_DELAY_TIME_A”
\u0001 2
在我的输出文件中。你知道是什么原因造成的,以及如何得到预期的结果吗? 提前谢谢!你知道吗
使用原始字符串。对于普通字符串,
\1
由Python解释,这意味着将带有ASCII代码1
的字符放入字符串中,而不是传递给shell。你知道吗或者,您可以用Python编写代码,使用它的
re
模块,而不是调用sed
。你知道吗相关问题 更多 >
编程相关推荐