在Python中按字母顺序对文本文件的内容进行排序

时间:2015-11-11 22:29:27

标签: python

我想按字母顺序对变量内部的文件进行排序' 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()

提前致谢。

1 个答案:

答案 0 :(得分:0)

您忘记将已排序的行写回文件:

file = open(infofile)
lines = file.readlines()
lines.sort()
for line in lines:
    file.write(line)   # <-- Write the lines back
file.close()