Python文件打开时数据错误

Python wrong data from file opening

提问人:Waqas liaqat 提问时间:7/13/2023 最后编辑:BarmarWaqas liaqat 更新时间:7/13/2023 访问量:34

问:

在 python 中,我的文本文件中的数字以行的形式存在。如:

1
2
3

当我尝试从文件中获取数据时,每个数字\n都成为列表中该元素的一部分,但是在例如:readlines()

['1\n','2\n' ]

但是,在教程中,它不会在每个数字后添加\n。谁能解释一下为什么会发生这种情况,请提供解决方案

我期望的结果应该是:

[1,2,3,4]
python file-io readlines

评论

1赞 Barmar 7/13/2023
教程是错误的,或者你误读了它。 包括在其结果中分隔行的换行符。为什么你期待一个数字列表?文件包含文本,您必须调用才能将其转换为数字。readlines()int()
1赞 deceze 7/13/2023
如果不进行一些额外的处理,从文件中读取永远不会产生数字列表。您确定您的教程没有包含一些额外的步骤吗?
0赞 Barmar 7/13/2023
教程的 URL 是什么?

答:

0赞 Ilya 7/13/2023 #1

试试这个,它非常丑陋的方法,但它会解决你的问题:)

    with open(‘123.txt’, ‘r’) as rf:
       lines = rf.readlines()
       result = []
       for elem in lines:
           result.append(int(elem))

评论

1赞 deceze 7/13/2023
FWIW,这种方法可能更像 python 的实现是 .result = list(map(int, rf))
0赞 Ilya 7/13/2023
@deceze ♦我认为越容易越好:D
0赞 Matthias 7/13/2023
@Ilya“简单”在于旁观者的眼中。对我来说,更简单的版本是 deceze 所展示的版本。
0赞 Ilya 7/13/2023
@Matthias 在我看来,对于作为问题创造者的初学者来说,最好先了解语言的基本功能,然后再进行更正确但也更难理解的内容。但毕竟我同意你的看法:)