ここ最近、別のユーザーが下記のコードを改良するのを手伝ってくれました。私は整数のソートされたリストを持っていますが、元のリストを取得する方法はわかりません。なぜなら、with文はそれが読んでいるファイルを閉じるからです。変数を "List"に戻し、printステートメントを持っていれば、それを生成する方法を見つけることができます。私はreadlines機能を使うのは簡単だと思っていましたが、それをどうやって行うのか分かりません。助けてくれてありがとう!私はまだPythonを初めて使っています...Python(2.7)クローズファイルエラーの操作
import random
with open("1000.txt", "w") as f:
for x in range(1000):
f.write(str(random.randint(0, 9999))+"\n")
def readList():
infile = raw_input("Input File Name: ")
rawList = list()
with open(infile, 'r') as infi:
for line in infi:
rawList.append(int(line))
sortedList = sortList(rawList) #function call for sorting the list, returned sorted list is stored
n = int(raw_input("Which number do you want to return?: "))
user_num = int(float(n-1))
return sortedList, user_num, List
def sortList(inpList): #function needs list as input and returns sorted list
inpList.sort()
return inpList
if __name__=='__main__': #This is how the main is defined in python
sortedList, List, user_num = readList() #function call of readList, returned two objects are stored in variables
first = sortedList[0]
lines = len(sortedList)
orig_min_val = min(List)
orig_max_val = max(List)
minimum_val = min(sortedList)
maximum_val = max(sortedList)
if user_num > 1000:
print user_num, "is greater than 1000!" # you don't need brackets when printing
elif user_num > lines:
print "There aren't that many numbers in the list!"
elif lines < 1000:
print "WARNING: only", lines, "numbers were read into the list!"
print "Before sort:"
print "Min is", orig_min_val
print "Max is", orig_max_val
print "After sort:"
print "Min is", minimum_val
print "Max is", maximum_val
print user_num
:私はあなたが
List
からrawList
に__main__
方法であなたの変数の名前を変更し、あなたの変数が正しくそうのように順序付けられていることを確認してくださいお勧めします私がちょうどそれを生産する方法を見つけることができれば」と言いました。*正確にはどういう意味ですか?あなたは 'main()'から 'readList()'を呼び出します - >ファイル名の入力を求められます - >ファイルが読み込まれ、リストに変換され、sorted - > 'sortedList、List、user_num'が返され、 'main()'から(ただし、変数の順序は乱れています)。私は密接にコードを読んでいないが、何がうまくいかないの? – jDo