我按照随机顺序 myInput01.txt 给了一个每行一个名字的文件,我需要按升序排序并输出有序名称每行一个名字到名为 myOutput01.txt 的文件。
myhandle = open('myInput01.txt', 'r')
aLine = myhandle.readlines()
sorted(aLine)
aLine = myOutput01.txt
print myOutput01.txt
答案 0 :(得分:1)
所以,这部分还可以:
myhandle = open('myInput01.txt', 'r')
aLine = myhandle.readlines()
您打开一个文件(在myhandle
中获取文件处理程序)并将其行读到aLine
。
现在,有一个问题:
sorted(aLine)
sorted
函数对aLine
参数没有任何作用。它返回一个已排序的新列表。因此,要么使用aLine.sort()
进行就地排序,要么将sorted
函数的输出分配给另一个变量:
sorted_lines = sorted(aLine)
此外,这两行很成问题:
aLine = myOutput01.txt
print myOutput01.txt
您正在使用名为aLine
的内容覆盖您的myOutput01.txt
变量,该内容对于脚本是未知的(它是什么?它在哪里定义?)。您需要以与读取文件类似的方式继续操作。您需要打开处理程序并使用该处理程序将 stuff 写入文件作为参考。
你需要:
mywritehandle = open('myOutputO1.txt', 'w')
mywritehandle.writelines(sorted_lines)
mywritehandle.close()
或者,为了避免必须明确调用close()
:
with open('myOutputO1.txt', 'w') as mywritehandle:
mywritehandle.writelines(sorted_lines)
您应该熟悉file objects,并注意myOutput01.txt
与"myOutput01.txt"
非常不同。
答案 1 :(得分:1)
对于未来的访问者来说,在Python中执行此操作的最简单,最简洁的方法是(假设排序不会破坏您的系统内存):
with open('myInput01.txt') as fin, open('myOutput01.txt', 'w') as fout:
fout.writelines(sorted(fin))
答案 2 :(得分:0)
outputFile = open('myOutput01.txt','w')
inputFile = open('myInput01.txt','r')
content = inputFile.readlines()
for name in sorted(content):
outputFile.write(name + '\n')
inputFile.close()
outputFile.close()