请教大神 python 是否支持这种格式化字符串的操作?
我的本意是把file.py读出来,然后作为echo的参数,格式化成一个字符串,然后用shell放在另外一台机器上跑,这样可以不用拷贝该file.py文件In : with open("file.py", "r") as f:data=f.read()
print data
....:
with open ("/tmp/file.py", "r") as myfile:
data=myfile.read()
print data
with open ("/tmp/2", "wr") as myfile:
myfile.write(data)
In : "echo -e %s > /tmp/1" % data
Out: 'echo -e with open ("/tmp/file.py", "r") as myfile:\n data=myfile.read()\nprint data\n\nwith open ("/tmp/2", "wr") as myfile:\n myfile.write(data)\n > /tmp/1'
实际上data 里包含里很多特殊字符,用%s格式化后生成的字符串在放到shell里执行老有问题,
请问下这种情况python有没有处理的好办法?
谢谢! 这个还不如就直接用shell读取,shell生成方便 回复 2# 代号:军刀
这段代码得放在python里实现。。。。:sleepy:
回复 1# rocky1972
你说的是可以的,但有一个要注意的,就是你原来要在程序执行的时候用的格式字符串必须改变,就是如果在程序执行时是%s的,要写成%%s这样才行,我给你一个建议,还不如进行关键字替换,如你可以设定REPLACE_NAME作为关键字,这个字来替换更好。而且更不容易出错。 用%r 呢可以不可以 本帖最后由 ghostwwl 于 2016-08-19 10:16 编辑
python --help看看
我忘了 几年前用过 shell 的输出然后传到py处理 然后再传回shell
找不到了 。。。
类似这种。。。。。。
# python -c 'a=open("x.py","rb");print a.read();a.close();'|wc -l
页:
[1]