排序,打开和写入文件

时间:2013-10-27 06:47:49

标签: python file sorting

我正在尝试编写一个执行以下操作的函数

  • 打开word_list.txt文件
  • 将此文件的内容读入列表
  • 按字母顺序对列表进行排序
  • 将列表内容写入名为alphabetic.txt
  • 的文件

这是我的代码

def alphabetic():
    file = open("word-text.txt","r")
    data=file.read()
    print (data)
    file.close()
    listsort=data
    listsort.sort()
    print(listsort)

每当我尝试运行此代码时,我使用“文件”的列表将不会被排序,我得到以下结果(这与我的列表顺序相同),我试图用字母顺序对它们进行排序订单有错误

>>> alphabetic()
apples
oranges
watermelon
kiwi
zucchini
carrot
okra
jalapeno
pepper
cucumber
banana
Traceback (most recent call last):
  File "<pyshell#32>", line 1, in <module>
    alphabetic()
  File "/Users/user/Desk`enter code here`top/Outlook(1)/lab6.py", line 15, in alphabetic
    listsort.sort()
AttributeError: 'str' object has no attribute 'sort'`

我真的是一个新的程序员,我正努力做到最好,但请明确,因为我不是最好的

1 个答案:

答案 0 :(得分:2)

您的方法无效,因为read方法只返回一个字符串。由于Python字符串没有sort()方法,因此您收到了错误。 sort方法适用于lists,如我的方法中使用readlines方法所示。

如果这是您的文件内容:

apples
oranges
watermelon
kiwi
zucchini
carrot
okra
jalapeno
pepper
cucumber
banana

以下是相关代码:

with open('word-text.txt', 'r') as f:
    words = f.readlines()

    #Strip the words of the newline characters (you may or may not want to do this):
    words = [word.strip() for word in words]

    #sort the list:
    words.sort()
    print words

输出:

['apples', 'banana', 'carrot', 'cucumber', 'jalapeno', 'kiwi', 'okra', 'oranges', 'pepper', 'watermelon', 'zucchini']