我使用函数创建随机数,并使用此代码块在for循环中使用random.txt
在名为\n
的文件中逐行编写:
dosya.write(str(randomNumber))
dosya.write('\n')
我需要从行创建一个列表,然后使用sort函数对该列表进行排序。我可以在该文件中逐行查看我的随机数字,但是当我使用readline()
函数时:
List = open("random.txt").readlines()
print List
输出是:
['22\n', '16\n', '1\n', '4\n', '4\n']
为什么我的号码后会看到\n
?我尝试只打印第一个或第二个元素,它没有显示任何额外的东西。整个清单有什么问题?当我使用sort函数时,它也需要\n
。
答案 0 :(得分:0)
遍历每一行并将该行转换为int并附加到数组。
f=open('random.txt','r')
array = []
for line in f: # read lines
array.append(int(line))
f.closed
答案 1 :(得分:0)
.readlines()
方法读取每一行,包括结尾\n
的行作为列表元素。
无论如何,您可能希望将随机数作为整数。
将它们转换为int
也会使您的排序工作:
with open("random.txt") as fobj:
data = [int(line) for line in fobj]
with
打开文件,并保留在您离开缩进后立即将其关闭的文件。打开文件对象fobj
是可迭代的。因此,您可以直接在fobj
上编写列表推导,将每行转换为整数。它会自动删除所有换行符n
。