最近做自动化测试,遇到一个问题,就是测试环境在Windows中,而被测环境在Linux系统中;
有一个步骤是修改shell脚本,然后发送到Linux系统中执行,但问题出现在修改shell脚本后,自动替换为\r\n导致Linux端运行错误
Python3.6.3环境
解决方案如下:
def mdf_sh(p_sh_src, p_sh_dst):
"""
修改 shell 脚本
:param p_sh_src: 输入脚本路径
:param p_sh_dst: 输出脚本路径
"""
with open(p_sh_src, 'rb') as f, open(p_sh_dst, 'wb') as fw:
for line in f:
line = line.decode('utf-8')
new_line = re.sub(r'useGPU=\w+', 'useHbase=True', line) # 假设我们修改这一行
new_line = new_line.encode('utf-8')
fw.write(new_line)
return 0
这里唯一注意的就是只有将文件以 wb 格式打开的状态写入,换行才不会被自动替换为 \r\n
关于rb wb 相关知识,网上有很多,这里就不再赘述了。
希望能帮到大家。