我想按字母顺序对变量内部的文件进行排序' infofile'。我目前执行此操作的代码不起作用,文件保持不变。该程序本身是一个基本的问卷,用于实验阅读和写入文件。
import time
import sys
name = input("What is your first name?").upper()
age = input("How old are you?")
while not age.isdigit():
print("Please Only Enter Numbers.")
age = input("How old are you?")
if int(age) <16:
infofile = "DatabaseMinor.txt"
elif int(age) >15 and int(age) <22:
infofile = "DatabaseYoungAdult.txt"
elif int(age) >21 and int(age) <65:
infofile = "DatabaseAdult.txt"
else:
infofile = "DatabaseSenior.txt"
gender = input("Are you [M]ale or [F]emale?").upper()
while gender not in {'M', 'F'}:
print("Please Only Enter M Or F.")
gender = str(input("Are you [M]ale or [F]emale?")).upper()
location = input("What country are you from? (UK)").upper()
while location not in {'ENGLAND', 'SCOTLAND', 'WALES', 'NORTHERN IRELAND'}:
print("Please Only Enter A Valid Country Within The UK.")
location = input("What country are you from?").upper()
#Compilation of inputs into a single line format
userinfo = name + " " + str(age) + " " + gender + " " + location + " " + (time.strftime("%d/%m/%Y")) + " " + (time.strftime("%H:%M:%S")) + '\n'
#Opening and writing value of the userinfo variable to the appropriate text file
file = open(infofile, 'a')
file.write(userinfo)
file.close()
file = open(infofile)
lines = file.readlines()
lines.sort()
file.close()
提前致谢。
答案 0 :(得分:0)
您忘记将已排序的行写回文件:
file = open(infofile)
lines = file.readlines()
lines.sort()
for line in lines:
file.write(line) # <-- Write the lines back
file.close()