注册
登录
查看:876 | 回复:9
不二
推导式到底是个啥玩意,搞不懂
发表于 2023/10/13 13:05:22
楼主
filename= student.txt 
# 获取student.txt中的内容
stu_am = [stu for stu in filename]
print(stu_am)


我想获取文件中的内容

但是打印出来的却是文件名

波哥
发表于 2023/10/13 13:08:26
沙发

你的文件内容是什么

不二
发表于 2023/10/13 13:12:36
板凳

一堆字典

{ id : 100 , name : 张三 , 英语 : 515, python : 151, java : 2626}
{ id : 100 , name : 12 , 英语 : 12, python : 156, java : 154}

乱打的,没实际意义


麻皮儿
发表于 2023/10/13 13:13:46
4楼
filename= student.txt 
file=open(filename, r )
# 获取student.txt中的内容
stu_am = [stu for stu in file]
print(stu_am)

试试这个

不二
发表于 2023/10/13 13:15:12
5楼

报错


image.png

麻皮儿
发表于 2023/10/13 13:18:40
6楼

open这里改为

open(filename, r ,encoding= utf-8 )

麻皮儿
发表于 2023/10/13 13:21:23
7楼

因为你文本保存应该是u8
open默认编码gbk打开

解码错误

不二
发表于 2023/10/13 13:22:03
8楼

改了还是报错

Traceback (most recent call last):
  File  D:\pythonProject\列表\列表推导式.py , line 22, in  module 
    stu_am = [stu for stu in open(filename, r ,closefd= utf-8 )]
                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError:  str  object cannot be interpreted as an integer


应该是要用到上下文管理器

麻皮儿
发表于 2023/10/13 13:26:09
9楼

什么closefd

是encoding

不二
发表于 2023/10/13 13:27:44
10楼

好了,知识掌握不牢

谢谢大佬

立即注册站大爷用户,免费试用全部产品
立即注册站大爷用户,免费试用全部产品