免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1476 | 回复: 7
打印 上一主题 下一主题

[文本处理] 为何读出来都是**** [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-04-01 16:20 |只看该作者 |倒序浏览
  1. os.system("cat pro1.txt | awk '/ZINC/ {print $1}' | sed 's/ZINC\([0-9].*\)/\1/g' > file.txt ")
复制代码
为什么在python下读取文件,存入到file.txt都是****  而不是我想要的数字?
源文件:
我想要ZINC12345 后面的数字。
在线等。
直接执行shell指令没有问题

论坛徽章:
0
2 [报告]
发表于 2013-04-01 16:29 |只看该作者
测试后 问题出现在sed那里,还是没找出原因。

论坛徽章:
0
3 [报告]
发表于 2013-04-01 16:31 |只看该作者
本帖最后由 personball 于 2013-04-01 16:31 编辑

回复 2# 八月飞霜


    os.system("cat pro1.txt | awk '/ZINC/ {print $1}' | sed 's/ZINC\([0-9].*\)/\1/g' > file.txt ")
试试红色部分换成+

论坛徽章:
0
4 [报告]
发表于 2013-04-01 16:35 |只看该作者
换成+ 号没有作用 回复 3# personball

我那个shell命令在shell下就可以执行,但是放到python里os.system 里就出问题了


   

论坛徽章:
0
5 [报告]
发表于 2013-04-01 17:59 |只看该作者
命令应该这样写
os.system(r"cat .......")
因为原先你写的里面的转意字符已经被python转意掉了
用r""保留转意字符

论坛徽章:
0
6 [报告]
发表于 2013-04-01 18:49 |只看该作者
恩,确实如此,但自己不能写转义符吗?回复 5# jakieyoung


   

论坛徽章:
0
7 [报告]
发表于 2013-04-02 11:06 |只看该作者
>>> s = "cat pro1.txt | awk '/ZINC/ {print $1}' | sed 's/ZINC\([0-9].*\)/\1/g' > file.txt "
>>> s
"cat pro1.txt | awk '/ZINC/ {print $1}' | sed 's/ZINC\\([0-9].*\\)/\x01/g' > file.txt "
>>> t = r"cat pro1.txt | awk '/ZINC/ {print $1}' | sed 's/ZINC\([0-9].*\)/\1/g' > file.txt "
>>> t
"cat pro1.txt | awk '/ZINC/ {print $1}' | sed 's/ZINC\\([0-9].*\\)/\\1/g' > file.txt "

对比一下就知道了

论坛徽章:
0
8 [报告]
发表于 2013-04-02 13:58 |只看该作者
回复 7# jakieyoung

这回明白了,谢谢。
   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP