设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
楼主: mty1111
打印 上一主题 下一主题

【Python 第33课】 处理文件中的数据

[复制链接]

0

主题

0

好友

49

积分

新手上路

Rank: 1

61#
发表于 2018-4-28 11:39:40 |只看该作者
cloud 发表于 2018-4-27 21:13
感谢,去掉之后就成功了。但是这是为什么呢?

str将results转换成了字符串类型,写入文件就变成了字符串
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

62#
发表于 2018-6-5 09:35:04 |只看该作者
  1. f = open('score.txt')
  2. lines = f.readlines()
  3. print(lines)
  4. f.close()

  5. results=[]

  6. for line in lines:
  7.     print(line)
  8.     data = line.split()
  9.     print(data)
  10.    
  11.     sum = 0#每次循环时,sum都需要清零
  12.     for score in data[1:]:
  13.         sum += int(score)
  14.         

  15.     result = '%s\t:%d\n'%(data[0],sum)
  16.     print(result)

  17.     results.append(result)

  18. print(results)
  19. output = open('result.txt','w')
  20. output.writelines(results)
  21. output.close()
复制代码
当文件中有#-- scores.txt时,int(score)就会报错,因为解析出来的第一行是这个注释,无法转成int形,去掉就可以,那么就是说我们这个score的文件中不能用注释了是么?
  1. Traceback (most recent call last):
  2.   File "F:\Selenium 2自动化测试实战  基于Python语言\练习脚本\lesson33--处理文件中的数据.py", line 15, in <module>
  3.     sum += int(score)
  4. ValueError: invalid literal for int() with base 10: 'scores.txt'
复制代码
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

63#
发表于 2018-6-5 11:15:57 |只看该作者
suiersoda 发表于 2018-6-5 09:35
当文件中有#-- scores.txt时,int(score)就会报错,因为解析出来的第一行是这个注释,无法转成int形,去 ...

文件不是代码,不存在注释,那个也会当作内容
这里是我一开始教程里的歧义,后来版本有去掉
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

48

积分

新手上路

Rank: 1

64#
发表于 2018-6-5 11:30:03 |只看该作者
crossin先生 发表于 2018-6-5 11:15
文件不是代码,不存在注释,那个也会当作内容
这里是我一开始教程里的歧义,后来版本有去掉 ...

明白了!第一次提问真的有被回复很开心!谢谢crossin先生!
回复

使用道具 举报

0

主题

0

好友

18

积分

新手上路

Rank: 1

65#
发表于 2018-7-25 11:29:48 |只看该作者
老师,为什么我这个的输出结果只有文本的最后一行?可能是红色框内的有问题

{DA9C7567-9F81-4F00-B03C-27C478F80BCE}.jpg (26.03 KB, 下载次数: 440)

{DA9C7567-9F81-4F00-B03C-27C478F80BCE}.jpg

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

66#
发表于 2018-7-25 15:20:41 |只看该作者
shan91 发表于 2018-7-25 11:29
老师,为什么我这个的输出结果只有文本的最后一行?可能是红色框内的有问题
...

results.append 应该放在循环里呀,你想想看呢
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-4-28 12:54 , Processed in 0.029680 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部