免费注册 查看新帖 |

Chinaunix

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

python 数据类型问题 [复制链接]

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-12-05 11:46 |只看该作者 |倒序浏览
file内容为:
test01 98
test02 87

#!/usr/bin/env python


import subprocess

cat = subprocess.Popen(['cat', 'file'],stdout=subprocess.PIPE,)
grep = subprocess.Popen(['grep', 'test01'],stdin=cat.stdout,stdout=subprocess.PIPE,)
awk = subprocess.Popen(['awk', '{print $2}'],stdin=grep.stdout,stdout=subprocess.PIPE,)
end_of_pipe = awk.stdout
for line in end_of_pipe:
        value = line.strip()
        print type(value)
        print value

最终得到的结果如下:
<type 'str'>
98

请问,怎么能得到整形的98呢?求大师指教。



论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
2 [报告]
发表于 2013-12-05 12:28 |只看该作者
目测将

value = line.strip()

改为

value = int(line.strip())

即可

-----
   另外,说个题外话,你这代码很丑,cat ,grep ,awk 都出来了

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
3 [报告]
发表于 2013-12-05 12:34 |只看该作者
回复 2# reyleon

感谢回复。怎么能优化一下呢?


   

论坛徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16赛季CBA联赛之北京
日期:2016-07-06 15:42:0715-16赛季CBA联赛之同曦
日期:2016-06-12 10:38:0915-16赛季CBA联赛之佛山
日期:2016-05-27 11:54:56黄金圣斗士
日期:2015-12-02 11:44:35白银圣斗士
日期:2015-11-25 14:32:43白银圣斗士
日期:2015-11-23 12:53:352015亚冠之布里斯班狮吼
日期:2015-10-21 16:55:482015亚冠之首尔
日期:2015-09-01 16:46:052015亚冠之德黑兰石油
日期:2015-08-31 11:39:192015亚冠之萨济拖拉机
日期:2015-08-28 21:06:5315-16赛季CBA联赛之广东
日期:2016-07-12 14:58:53
4 [报告]
发表于 2013-12-05 13:12 |只看该作者
回复 3# mcumsigscr

我觉得用python,就应该用python的方法来处理问题,老是调用shell命令,感觉有点儿不伦不类,是吧?那还不如直接用shell处理了。
  1. #!/usr/bin/env python

  2. for r in open('file').readlines():
  3.         v = r.split()
  4.         print type(int(v[1])),v[1]
复制代码

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
5 [报告]
发表于 2013-12-05 13:33 |只看该作者
本帖最后由 mcumsigscr 于 2013-12-05 13:48 编辑

回复 4# reyleon

感谢您的回复。也非常同意您的观点。

还想请教一个问题,就是这些值,我想赋值给两个不同的变量,应该怎么写呢?
谢谢

   

论坛徽章:
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
6 [报告]
发表于 2013-12-05 16:28 |只看该作者
本帖最后由 代号:军刀 于 2013-12-05 16:31 编辑

回复 5# mcumsigscr
  1. #!/usr/bin/env python

  2. l=[]
  3. for r in open('file').readlines():
  4.     l.append(int(r.split()[1]))

  5. a,b=l[0:]
  6. print a,b
复制代码

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
7 [报告]
发表于 2013-12-05 16:43 |只看该作者
回复 6# 代号:军刀

感谢回复,但是line7 报错啊。


   

论坛徽章:
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
8 [报告]
发表于 2013-12-05 16:46 |只看该作者
本帖最后由 代号:军刀 于 2013-12-05 16:47 编辑

回复 7# mcumsigscr
上面你说两个值赋给两个变量,下面的代码也就只限你的file文件只有2行了
  1. [root@ py]$ cat file
  2. test01 98
  3. test02 87
  4. [root@ py]$ cat 56.py
  5. #!/usr/bin/env python

  6. l=[]
  7. for r in open('file').readlines():
  8.     l.append(int(r.split()[1]))

  9. a,b=l[0:]
  10. print a,b
  11. [root@ py]$ python 56.py
  12. 98 87
复制代码

论坛徽章:
1
狮子座
日期:2013-12-05 16:04:37
9 [报告]
发表于 2013-12-05 16:51 |只看该作者
本帖最后由 mcumsigscr 于 2013-12-05 16:52 编辑

回复 8# 代号:军刀



感谢回复。

是我的问题没有描述清楚,如果是四行或者多行文件,并且把值赋给与行数相同数量的变量,请问该如何修改呢?非常感谢。

   

论坛徽章:
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
10 [报告]
发表于 2013-12-05 17:03 |只看该作者
回复 9# mcumsigscr
  1. [root@ py]$ cat file
  2. test01 98
  3. test02 87
  4. test03 40
  5. [root@ py]$ cat 56.py
  6. #!/usr/bin/env python

  7. l=[]
  8. value={}
  9. i=1
  10. for r in open('file').readlines():
  11.     value[i]=int(r.split()[1])
  12.     i+=1
  13. for i in value:
  14.     print value[i],
  15. [root@ py]$ python 56.py  
  16. 98 87 40
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP