2

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

  • 打开文件 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'`
4

1 回答 1

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']
于 2013-10-27T06:52:39.627 回答