鱼C论坛

 找回密码
 立即注册
查看: 2362|回复: 4

[已解决]关于python读取代码行数的问题(小白)

[复制链接]
发表于 2022-7-29 15:19:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这是小甲鱼课后作业35讲的最后一题(是一个统计代码总行数的程序),我直接粘贴运行后发现程序统计我写的代码只有三百多行
就感觉程序有问题,于是发现有的.py文件可以通过迭代读取,有的不能
import os
os.getcwd()
'D:\\py'
with open("第一个小游戏改进.py") as f:
    lines=0
    for each_line in f:
        lines+=1
        print(lines)

Traceback (most recent call last):
  File "<pyshell#49>", line 3, in <module>
    for each_line in f:
UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 117: illegal multibyte sequence



with open("迭代器的实例.py") as f:
    lines=0
    for each_line in f:
        lines+=1
    print(lines)

    
18

是什么原因呢?希望大佬们帮我康康
最佳答案
2022-7-29 15:22:42
编码问题   open 函数里 加一句 encoding = 'utf-8' 再试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-7-29 15:22:42 | 显示全部楼层    本楼为最佳答案   
编码问题   open 函数里 加一句 encoding = 'utf-8' 再试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-29 15:26:45 | 显示全部楼层
加一个try...except...
如果错误的话,就在open的参数里加一个encoding="utf-8"来读取
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-7-29 15:45:07 | 显示全部楼层
qq1151985918 发表于 2022-7-29 15:22
编码问题   open 函数里 加一句 encoding = 'utf-8' 再试试

为什么有的又可以读取呢,都是.py文件为什么编码不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-29 15:57:03 From FishC Mobile | 显示全部楼层
hello? 发表于 2022-7-29 15:45
为什么有的又可以读取呢,都是.py文件为什么编码不一样

首先纠正一个问题,编码跟文件名没关系。同样是.py它可以实际上是一首歌一张图片一部电影,都可以。只是我们约定俗成默认了部分文件储存对应的类型的信息,你完全可以不遵守这个约定。
第二点,事实上可能一个代码是你下载的一个是自己写的吧。py文件编码一般由编辑器默认指定,不同的编辑器(idle,pycharm或者vscode)以及不同的人都有可能导致编码的些微差别。具体在再深入的原因我也不甚了解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 08:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表