如何使用Python单独打印数字(逗号分隔)?

时间:2017-11-17 05:41:00

标签: python python-3.x

我想使用Python以排序顺序逐行打印以下数字。

119,671,207,2484,6,741,2138,806,1851,2509,1264,701,2802,319,1603,98,347,525,1521,269,1681,1885,1731,2828 ,2543,2011,720,2359,2248,22,1637

我的代码看起来像

>>> fo = open("cr.txt", "r")
>>> fo1 = fo.readlines()
>>> fo2 = fo1.split(',')

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'split'

当我尝试使用split分割数字时,它会将错误显示为list object has no attribute split

2 个答案:

答案 0 :(得分:3)

fo.readlines()返回一个行列表。如果您的文本文件只包含一行,那么您可以使用它来选择文件中的第一行。

fo = open("cr.txt", "r")
fo1 = fo.readlines()[0]
fo2 = fo1.split(',')

如果你的文件包含多行,那么使用它,在用逗号分割所有值之前,用','连接所有行。

fo = open("cr.txt", "r")
fo1 = ','.join(fo.readlines())
fo2 = fo1.split(',')

答案 1 :(得分:1)

由于问题是以逗号分隔的逐行和排序方式打印数字,以下代码是一个解决方案:

f = open("cr.txt", "r")
l = f.read().split(sep = ",")
list1 = sorted(l, key=lambda e: int(e))
for i in list1:
    print(i)

输出是:

6
22
98
119
207 
269 
319 
347 
525 
671 
701 
720 
......

代码以排序方式逐行打印数字,不带逗号。我在这里使用lambda表达式来进行排序,这也可以通过sort()函数实现。