我试图将随机数写入文件,然后从Python中的行创建列表,但列表需要' \ n'太

时间:2015-11-21 16:56:13

标签: python list

我使用函数创建随机数,并使用此代码块在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

2 个答案:

答案 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