设为首页收藏本站

Crossin的编程教室

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

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

[复制链接]

0

主题

0

好友

88

积分

注册会员

Rank: 2

51#
发表于 2018-3-11 19:21:17 |只看该作者
crossin先生 发表于 2018-3-11 15:42
你没有close()

解决了!原来不关文件影响这样严重。感谢指导!
回复

使用道具 举报

0

主题

0

好友

14

积分

新手上路

Rank: 1

52#
发表于 2018-3-17 00:45:22 |只看该作者
crossin先生 发表于 2018-3-11 15:42
你没有close()

先生,不明白文中所说的每次循环前sum 都要清0,sum不是用来赋值0后来循环一个一个相加的吗?
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

53#
发表于 2018-3-17 15:10:36 |只看该作者
kakason 发表于 2018-3-17 00:45
先生,不明白文中所说的每次循环前sum 都要清0,sum不是用来赋值0后来循环一个一个相加的吗? ...

清0是在循环之前啊,每个人的总分不要先清零再算吗
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

2

好友

72

积分

注册会员

Rank: 2

54#
发表于 2018-4-10 18:43:41 |只看该作者
  1. f=open('score.txt')
  2. data=f.readlines()
  3. print(data)
  4. f.close

  5. results=[]
  6. for line in data:
  7.     data1=line.split()
  8.     print(data1)
  9.     sum=0  #sum在此处进行清零,保证data中的每个人都从零开始算总分
  10.     for score in data1[1:]:
  11.         sum+=int(score)
  12.     result='%s\t%d\n' %(data1[0],sum)
  13.     print(result)
  14.     results.append(result)
  15. output=open('result.txt','w')
  16. output.writelines(results)
  17. output.close()
复制代码
回复

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

55#
发表于 2018-4-16 15:53:57 |只看该作者
本帖最后由 jzhan030 于 2018-4-16 16:25 编辑

Traceback (most recent call last):
  File "C:/Users/win10/PycharmProjects/python3/read the data.py", line 3, in <module>
    lines = f.readlines()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 4: illegal multibyte sequence
先生您好,我的出现了这个问题?是因为scores.txt里面含有中文吗?
编码如下:
f = open('scores.txt')
lines = f.readlines()
print(lines)
f.close()

results=[]

for line in lines:
    print(line)
    data = line.split()
    print(data)

    sum = 0
    for score in data[1:]:
        sum += int(score)
    result = '%s\t:%d\n'%(data[0],sum)
    print(result)

    results.append(result)

print(results)
output = open('result.txt','w')
output.writelines(results)
output.close()
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

56#
发表于 2018-4-16 23:09:05 |只看该作者
jzhan030 发表于 2018-4-16 15:53
Traceback (most recent call last):
  File "C:/Users/win10/PycharmProjects/python3/read the data.py", ...

应该是的
有中文,而且不是gbk编码
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

17

积分

新手上路

Rank: 1

57#
发表于 2018-4-17 09:58:07 |只看该作者
crossin先生 发表于 2018-4-16 23:09
应该是的
有中文,而且不是gbk编码

谢谢回复。我稍改了一下。可以识别中文了。但是输出的result.txt里面中文部分还是乱码。请问这个怎么解决。有没有让python3 识别输出中文的解决方法。谢谢!

f = open('scores.txt',encoding='utf8')
#加了encoding=utf8之后可以识别中文了
回复

使用道具 举报

174

主题

45

好友

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

58#
发表于 2018-4-18 00:03:24 |只看该作者
jzhan030 发表于 2018-4-17 09:58
谢谢回复。我稍改了一下。可以识别中文了。但是输出的result.txt里面中文部分还是乱码。请问这个怎么解决 ...

打开写入文件的时候也加上 encoding
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

0

主题

0

好友

8

积分

新手上路

Rank: 1

59#
发表于 2018-4-27 12:52:18 |只看该作者
小白一枚,请问这个运行后txt文件里的内容为什么不能换行?

N{CF%$(COC{Q@)4G%BZNJKM.png (93.84 KB, 下载次数: 676)

N{CF%$(COC{Q@)4G%BZNJKM.png

34ENM}`KJBA3`_2][[QF~K7.png (65.52 KB, 下载次数: 670)

34ENM}`KJBA3`_2][[QF~K7.png

回复

使用道具 举报

0

主题

0

好友

49

积分

新手上路

Rank: 1

60#
发表于 2018-4-27 14:44:25 |只看该作者
cloud 发表于 2018-4-27 12:52
小白一枚,请问这个运行后txt文件里的内容为什么不能换行?

39行 results为什么要加str?把str去掉试试
回复

使用道具 举报

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

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

GMT+8, 2024-11-22 08:16 , Processed in 0.018518 second(s), 24 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部