绵绵haha 发表于 2020-4-6 20:14:24

为什么调用文件后,打印到屏幕上的字和文档中的完全不同?

本帖最后由 绵绵haha 于 2020-4-6 20:14 编辑

第29课的第二题,要求编写一个程序,当用户名输入文件名和行数N后,将前N行的内容打印到屏幕上。

name=input('请输入要打开的文件:')
a=open(name,errors='ignore')
n=int(input('请输入需要显示该文件前几行:'))

print('文件%s的前%d行的内容如下:\n' % (name,n))
count=1
for each_line in a:
    if count<=n:
      print(each_line)
      count += 1
    else:
      break

a.close()

我还添加不了图片,这个代码显示的结果是“杩欓噷鏄

涓鍙”就是这种看不懂的

BngThea 发表于 2020-4-6 20:17:57

先用一个简单的文件试试,是不是编码格式的问题
或者在open中加上参数encoding='utf-8'

_2_ 发表于 2020-4-6 20:18:08

指定编码
open(name, encoding='utf-8')

_2_ 发表于 2020-4-6 20:18:40

BngThea 发表于 2020-4-6 20:17
先用一个简单的文件试试,是不是编码格式的问题
或者在open中加上参数encoding='utf-8'

……我还以为没人呢

qiuyouzhi 发表于 2020-4-6 20:19:14

指定一下编码:
open(file, encoding = 'utf-8')

老八秘制 发表于 2020-4-6 20:21:44

是不是你编码问题,指定一下
open(filename, encoding = 'utf-8')

绵绵haha 发表于 2020-4-6 20:23:42

BngThea 发表于 2020-4-6 20:17
先用一个简单的文件试试,是不是编码格式的问题
或者在open中加上参数encoding='utf-8'

对了!谢谢!可是为啥呢?而且之前在open里面没有加errors='ignore'的时候,也是显示错误。

绵绵haha 发表于 2020-4-6 20:26:06

_2_ 发表于 2020-4-6 20:18
指定编码

谢谢{:5_109:}是这样子的

BngThea 发表于 2020-4-6 20:26:11

绵绵haha 发表于 2020-4-6 20:23
对了!谢谢!可是为啥呢?而且之前在open里面没有加errors='ignore'的时候,也是显示错误。

就是编码不对
页: [1]
查看完整版本: 为什么调用文件后,打印到屏幕上的字和文档中的完全不同?