f = ("name list.txt","r")
f.sort()
for lines in f:
print(f)
这会显示错误消息
"元组"对象没有属性f.sort()
答案 0 :(得分:1)
假设这是python,
f = ("name list.txt","r")
不是你想要的。这里的括号创建了两个字符串的元组。我相信你打算这样做:
f = open("name list.txt","r")
这不会解决您的问题,因为文件对象也没有sort
方法,但它是朝着正确方向迈出的一步。您可能正在寻找lines = f.readlines(); lines.sort()
答案 1 :(得分:1)
您应该打开该文件,然后使用sorted
函数进行非就地排序,然后将其存储到变量中:
with open("name list.txt","r") as fobj:
res = sorted(fobj)
res
将是你想要的,一个排序的list
字符串。
sorted
会自动浏览文件中的每一行,从该行中提取文本,然后对所有行进行排序。这是因为,在Python中,文件被认为是可迭代的,你可以逐行循环(如for line in fobj
),sorted
接受迭代。
with
是因为它会在一切都结束时安全地关闭文件,即使有异常也是如此。 fobj = open("name list.txt","r")
要求您记得事后关闭它,如果有异常,可能会关闭。 with
为您解决所有问题。
如果您不想在每行末尾添加换行符,请执行以下操作:
with open("name list.txt","r") as fobj:
res = sorted(line.strip('\n') for line in fobj)
这基本上与上面相同,只是它遍历每一行并在排序前去除换行符。
答案 2 :(得分:0)
这是我能想到的最简单的方法来做你想做的事情:
with open("name list.txt", "r") as f:
for line in sorted(f.read().splitlines()):
print(line)