尝试按字母顺序对txt文件进行排序并将其保存到新文件中

时间:2017-03-22 06:18:54

标签: python

我可以将文本文件放入列表中并按字母顺序对其进行排序。我无法将此新列表保存/插入名为GirlsNamesSorted.txt的新文本文件中。我目前有:

newGirlFile = open('/Users/MacUser/Documents/Python/GirlNamesSorted.txt')

for i in newGirlFile:
    j = i.rstrip("\r\n")
    girlList.append(j)
    girlList.sort(key=str.lower)
newGirlFile.write("\n".join(girlList))
print newGirlFile.read()


newGirlFile.close()

我认为错误来自:

newGirlFile.write("\n".join(girlList))

但我不完全确定并且需要帮助找到错误并修复错误。

4 个答案:

答案 0 :(得分:0)

默认情况下,open()以只读方式打开文件;您需要指定模式,在本例中为 w riting和reading w+作为第二个参数。

newGirlFile = open('/Users/MacUser/Documents/Python/GirlNamesSorted.txt', 'w+')

答案 1 :(得分:0)

从文件读取输入并将输出写入同一文件不是一个好习惯。

请包装新文件以编写输出,如下所述,

  StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
  StrictMode.setThreadPolicy(policy);

希望这会奏效。

如有任何疑问,请与我们联系。

答案 2 :(得分:0)

oldGirlFile = open('/Users/MacUser/Documents/Python/GirlNamesSorted.txt', 'r')
girlList = [line.rstrip("\r\n") for line in newGirlFile.readlines()]
oldGirlFile.close()

girlList = girlList.sort(key=str.lower)

newGirlFile = open('/Users/MacUser/Documents/Python/GirlNamesSortedNew.txt', 'w')
newGirlFile.write("\n".join(girlList))
newGirlFile.close()

然后,您可以在文本编辑器中打开该文件并检查其内容。

答案 3 :(得分:0)

要对文件进行排序,只需执行以下操作:

from contextlib import closing
with closing(open('/Users/MacUser/Documents/Python/GirlNamesSorted.txt', 'w+')) as newGirlFile:
    girlList=sorted([i.strip() for i in newGirlFile], key=str.lower)
    newGirlFile.write("\n".join(girlList))

注意:在编写和读取文件时,您还应该使用with语法,以便正确关闭文件。在Jython中,上下文管理器需要额外的closing()