简体   繁体   中英

How to add numbers to a file

I'm a beginner at Python and I just learned about opening files, reading files, writing files, and appending files.

I would I like to implement this to a little project that I'm making that asks for the user's name and appends it to a txt file named "HallOfFame.txt"

try:
    infile = open('HallOfFame.txt', 'r')
    file_contents = infile.read()
    print(file_contents)
    infile.close()
except:
    FileNotFoundError
    print("No Human Has Ever Beat Me... mwah-ha-ha-ha!")

name_file = open("HallOfFame.txt", 'a')
name_record = input("Please enter your name: ")
name_file.write(str(name_record) + '\n')
name_file.close()

Everytime someone adds their name, I'd like it to become something like this:

  1. Vix
  2. Mike
  3. Valerie

Something similar like that (above) where they have to run the program again to see the Hall of Fame.

Thank you!

I can understand your question. you can try using the JSON module and do something like this.

import json

list = [1, "Vix"]

with open ('HallOfFame.txt', 'w') as filehandle:
     json.dump(list, filehandle)

here you can update the list every time you get input. and write it to the text file. but the appearance will look like this.

[1, "Vix"] 
[2, "Mike"]
[3, "Valerie"]
count = 0
try:
    infile = open('HallOfFame.txt', 'r')
    file_contents = infile.readlines()
    if len(file_contents) != 0:
        print("\nHall of Fame")
        for line in file_contents:
            count += 1
            print("{}. {}".format(count, line.strip()))
    print()
    infile.close()
except:
    FileNotFoundError
    print("No Human Has Ever Beat Me... mwah-ha-ha-ha!")

name_file = open("HallOfFame.txt", 'a')
name_record = input("Please enter your name: ")
name_file.write(str(name_record) + "\n")
name_file.close()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM