2

単純な名前のスクリプトが機能しない理由がわかりません。while ループでバグが発生するようです。呼び方が悪いのかもしれませんが、研究を続けながらここで答えを出そうと思いました。

#!/usr/bin/python

#open the file
name_file = open('names.txt', 'r')

#read in lines
names = name_file.readlines()

#close file
name_file.close()

#loop to place names in array
index = 0
        while index < len(names):
             names[index] = names[index].rstrip('\n')
             index += 1
#sort
names.sort()

#print sorted names
print names
4

2 に答える 2

6

多分これはうまくいきます:

with open ('names.txt', 'r') as f:
    names = sorted (name.rstrip ('\n') for name in f)

print (names)

withスコープを離れると、ファイルが閉じられます。

于 2013-08-02T23:33:33.023 に答える
-1
with open('names.txt', 'r') as f:
    names = sorted(f.readlines())

for (i, name) in enumerate(names):
    names[i] = name.rstrip('\n')

これでうまくいくはずです。

これらの種類のものには、常に for ループを使用する方がよい場合があります。

于 2013-08-02T23:40:33.307 に答える