如何使用 Python 在文本文件中读取和写入多个值?
How can I read and write multiple values in a text file with Python?
所以,我正在尝试使用python编写一个高分文本文件,当其他人打开程序时可以读取。我以前在C++做过这个,它看起来像这样:
void main()
{
//Declare local variables
int High_Score[5];
int Rank;
string High_Score_Name[5];
//Initialize a high score at 0
High_Score[4] = 0;
//Input the high scores from a file
ifstream Input_High_Scores;
Input_High_Scores.open("High_Scores.txt");
for (int i = 0; i < 5; i++)
{
Input_High_Scores >> High_Score[i];
Input_High_Scores >> High_Score_Name[i];
}
Input_High_Scores.close();
if (High_Score[4] == 0)
{
//Initialize local variables
High_Score[0] = 999999999;
High_Score[1] = 40000;
High_Score[2] = 37000;
High_Score[3] = 30000;
High_Score[4] = 25000;
High_Score_Name[0] = "Developer";
High_Score_Name[1] = "Adam";
High_Score_Name[2] = "Nastasia";
High_Score_Name[3] = "Nicolas";
High_Score_Name[4] = "Dani";
}
}
我需要的是一个在 Python 中执行此操作的版本。我找到了一种在文本文件中保存 1 个值的方法,但我希望它总共保存 10 个值。5个名字和5个分数。我还需要知道如何在程序中读取这些值。这是我到目前为止所拥有的:
# Trivia game created by NeverEndingCycle
Start = ""
Exit = ""
Score = int(0)
Next = ""
HighScore = int(0)
def GetHighScore():
# Default high score
HighScore = 0
# Try to read the high score from a file
try:
high_score_file = open("high_score.txt", "r")
HighScore = int(high_score_file.read())
high_score_file.close()
print("The high score is", HighScore)
except IOError:
# Error reading file, no high score
print("There is no high score yet.")
print("")
except ValueError:
# There's a file there, but we don't understand the value.
print("I'm confused. Starting with no high score.")
return HighScore
def save_high_score(new_high_score):
try:
# Write the file to disk
high_score_file = open("Highscore.txt", "w")
high_score_file.write(str(new_high_score))
high_score_file.close()
except IOError:
# Hm, can't write it.
print("ERROR --- Unable to save the high score.")
def CheckForHighScore():
global Score
# Get the high score
high_score = GetHighScore()
# Get the score from the current game
current_score = 0
try:
current_score = Score
except ValueError:
# Error
print("___ERROR___")
# See if we have a new high score
if current_score > high_score:
# We do! Save to disk
global Exit
print("Yea! New high score!")
save_high_score(current_score)
Exit = input("Press ENTER to exit")
else:
global Exit
print("No new Highscore, Better luck next time.")
Exit = input("Press ENTER to exit")
def ShowScore():
global Score
global Next
print("")
print("You now have", Score, "Point(s).")
Next = input("Press ENTER to continue to the next Question.")
def Q1():
global Score
print("")
print("Question 1.")
print("What type of variable is a String? (1 Point)")
print("")
print("1. Letters")
print("2. Numbers")
print("3. Decimals")
print("4. A String is not a varible.")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 1
print("")
print("Correct! 1 point has been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q2():
global Score
print("")
print("Question 2.")
print("(1 Point)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 1
print("")
print("Correct! 1 point has been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q3():
global Score
print("")
print("Question 3.")
print("(1 Point)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 1
print("")
print("Correct! 1 point has been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q4():
global Score
print("Question 4.")
print("(1 Point)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 1
print("")
print("Correct! 1 point has been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q5():
global Score
print("Question 5.")
print("(5 Points)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 5
print("")
print("Correct! 5 points have been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q6():
global Score
print("")
print("Question 6.")
print("(2 Points)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 2
print("")
print("Correct! 2 points have been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q7():
global Score
print("")
print("Question 7.")
print("(2 Points)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 2
print("")
print("Correct! 2 points have been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q8():
global Score
print("")
print("Question 8.")
print("(2 Points)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 2
print("")
print("Correct! 2 points have been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q9():
global Score
print("Question 9.")
print("(2 Points)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 2
print("")
print("Correct! 2 points have been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Q10():
global Score
print("")
print("Question 10.")
print("(10 Points)")
print("")
print("1. ")
print("2. ")
print("3. ")
print("4. ")
print("")
Answer = input("What is your answer? ")
if Answer == "1":
Score = Score + 10
print("")
print("Correct! 2 points have been added to your score!")
print("")
elif Answer == "2":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "3":
print("")
print("Incorrect. No points were added.")
print("")
elif Answer == "4":
print("")
print("Incorrect. No points were added.")
print("")
else:
print("Incorrect. Choose an answer between 1 and 4 next time!")
return Score
def Main():
global Next
Q1()
ShowScore()
Q2()
ShowScore()
Q3()
ShowScore()
Q4()
ShowScore()
print("")
print("Bonus Question 5x Points!")
Q5()
ShowScore()
print("")
print("Last 5 questions! All points are double!")
Q6()
ShowScore()
Q7()
ShowScore()
Q8()
ShowScore()
Q9()
ShowScore()
print("")
print("Final Question 5x Points!")
Q10()
ShowScore()
Next = input("Press ENTER to continue.")
Name = input("Please enter your name: ")
print("")
print("Welcome, %s, to NeverEndingCycle's Trivia Game!" % (Name))
print("")
Start = input("Press ENTER to begin playing!")
print("")
Main()
CheckForHighScore()
最后,如果我能保留尽可能多的原始代码,那就太好了。我正在努力自学,直到现在进展顺利。我的意思是我需要了解我的问题的解决方案是什么,否则我将不知道将来如何解决它。
我对python很陌生 - 就像上周开始的新一样 - 我正在自学,所以如果这是一个愚蠢的问题,我深表歉意,但我在任何地方都找不到解决方案。另外,我知道我的格式很糟糕,我正在努力。
将数据追加到文件
此代码可用于将数据追加到文件,因此,如果文件存在,它不会覆盖当前数据。"A+"代表追加,加号表示如果文件尚不存在,它将创建一个文件。
high_score_file = open("Highscore.txt", "a+")
要将高分信息写入文件,您只需更改第一行代码。请参阅"a+"而不是"w"。
high_score_file = open("Highscore.txt", "a+")
high_score_file.write(str(new_high_score)
high_score_file.close()
从文件中读取数据
从文件中读取数据很简单,这是一种读取数据的有效方法。它将逐行读取数据。此外,顶行是以只读模式打开文件,因此给定"r"。这意味着您将无法写入它。
high_score_file = open("Highscore.txt", "r")
for line in high_score_file:
print(line, end='')
据我了解,您希望将多行写入文本文件。这个页面帮助了我。我建议用high_score_file.writelines([line1, line2, line3])
替换high_score_file.write(str(new_high_score))
。对于每一行,写下您计划的 10 个值。
相关文章:
- 如何使用Python从C++中读取谷物序列化数据
- 为什么我无法打开/读取从 Python 调用的 C 扩展名中的 txt 文件?
- 是否可以使用 Python csv 阅读器读取使用 C++ std::setw 生成的文件?
- 从 c++ 到 python 的二进制读取器
- 在 c++ 中逐行读取文件(将代码从 Python 转换为 C++)
- 在 DLL 中嵌入 Python:Py_DECREF列表对象时访问冲突读取位置
- C++输出与Python不同的消息(从串行端口读取)
- 在python swig中读取c ++ 2d数组
- 如何使用 Python 在文本文件中读取和写入多个值?
- 如何改进 Python C 扩展文件行读取
- 为什么这种逐行文件读取在 c++ 中比在 Python 中慢得多
- 通过插座读取Python中的OpenCV图像
- 同时使用 Python 和 C++ 运行读取和写入文件
- GDB Python模块读取内存内容
- 哪些数据文件从python(或其他)中读取的C 输出格式更有效
- 读取在python中使用C++生成器创建的文件
- 用 c++ 编写二进制文件并用 python 读取
- 在Qt应用程序中读取python脚本C++输出
- 从Python读取输入,并在循环时打印出来
- 正在读取python中telnet连接的实时输出