忘记密码   免费注册 查看新帖 | 论坛精华区

ChinaUnix.net

  平台 论坛 博客 认证专区 大话IT 视频 徽章 文库 沙龙 自测 下载 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 41956 | 回复: 5

请教大神 python 是否支持这种格式化字符串的操作? [复制链接]

论坛徽章:
0
发表于 2016-08-03 17:59 |显示全部楼层
我的本意是把file.py读出来,然后作为echo的参数,格式化成一个字符串,然后用shell放在另外一台机器上跑,这样可以不用拷贝该file.py文件
  1. In [17]: with open("file.py", "r") as f:
  2.     data=f.read()
  3.     print data
  4.    ....:     
  5. with open ("/tmp/file.py", "r") as myfile:
  6.     data=myfile.read()
  7. print data

  8. with open ("/tmp/2", "wr") as myfile:
  9.    myfile.write(data)


  10. In [18]: "echo -e %s > /tmp/1" % data
  11. Out[18]: '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有没有处理的好办法?

谢谢!

论坛徽章:
13
丑牛
日期:2013-08-16 15:08:22技术图书徽章
日期:2013-11-26 10:13:40双鱼座
日期:2013-11-08 15:03:26戌狗
日期:2013-11-08 13:52:30技术图书徽章
日期:2013-11-05 14:06:30戌狗
日期:2013-10-31 11:45:42CU十二周年纪念徽章
日期:2013-10-24 15:41:34天秤座
日期:2013-10-11 14:55:08子鼠
日期:2013-09-26 19:36:35水瓶座
日期:2013-09-26 17:44:56午马
日期:2013-08-26 10:24:23丑牛
日期:2013-08-19 14:43:22
发表于 2016-08-03 20:00 |显示全部楼层
这个还不如就直接用shell读取,shell生成方便

论坛徽章:
0
发表于 2016-08-04 08:15 |显示全部楼层
回复 2# 代号:军刀


这段代码得放在python里实现。。。。

   

论坛徽章:
1
15-16赛季CBA联赛之新疆
日期:2017-03-09 12:33:45
发表于 2016-08-04 08:36 |显示全部楼层
回复 1# rocky1972


    你说的是可以的,但有一个要注意的,就是你原来要在程序执行的时候用的格式字符串必须改变,就是如果在程序执行时是%s的,要写成%%s这样才行,我给你一个建议,还不如进行关键字替换,如你可以设定REPLACE_NAME作为关键字,这个字来替换更好。而且更不容易出错。

论坛徽章:
9
操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-01-28 06:20:0015-16赛季CBA联赛之四川
日期:2016-05-17 17:50:32操作系统版块每日发帖之星
日期:2016-08-01 06:20:0015-16赛季CBA联赛之广东
日期:2016-08-01 16:01:57操作系统版块每日发帖之星
日期:2016-08-04 06:20:00IT运维版块每日发帖之星
日期:2016-08-07 06:20:00操作系统版块每日发帖之星
日期:2016-08-07 06:20:0015-16赛季CBA联赛之福建
日期:2017-03-07 17:14:27
发表于 2016-08-16 17:32 |显示全部楼层
用%r 呢可以不可以

论坛徽章:
4
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:192015亚冠之广州恒大
日期:2015-07-22 17:20:15
发表于 2016-08-19 09:16 |显示全部楼层
本帖最后由 ghostwwl 于 2016-08-19 10:16 编辑

python --help  看看

我忘了 几年前用过 shell 的输出然后传到py处理 然后再传回shell

找不到了 。。。

类似这种。。。。。。

[root@ghostwwl ghostwwl]# python -c 'a=open("x.py","rb");print a.read();a.close();'|wc -l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

  

北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:1101082001
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP