我可以将文本文件放入列表中并按字母顺序对其进行排序。我无法将此新列表保存/插入名为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))
但我不完全确定并且需要帮助找到错误并修复错误。
答案 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()