如何用python将信息保存到文件?(简单编程)
在下面的程序中,我创建了一个名为“Tv”的类,并从该类中实例化了两个对象,分别称为“vardagsrums_Tv”和“koks_Tv”。在程序的主要功能中,用户可以通过我创建的某些类方法更改两个对象中的不同设置,例如音量和频道。到目前为止,一切顺利 但问题的核心是,当用户更改了这些不同的设置(音量、频道)时,我想将它们保存到一个文本文件中,这样当用户关闭并重新打开程序时,所有设置都将与用户离开时相同 这是我的节目:如何用python将信息保存到文件?(简单编程),python,file,text,save,Python,File,Text,Save,在下面的程序中,我创建了一个名为“Tv”的类,并从该类中实例化了两个对象,分别称为“vardagsrums_Tv”和“koks_Tv”。在程序的主要功能中,用户可以通过我创建的某些类方法更改两个对象中的不同设置,例如音量和频道。到目前为止,一切顺利 但问题的核心是,当用户更改了这些不同的设置(音量、频道)时,我想将它们保存到一个文本文件中,这样当用户关闭并重新打开程序时,所有设置都将与用户离开时相同 这是我的节目: def main(): vardagsrums_tv = Tv(read_fil
def main():
vardagsrums_tv = Tv(read_file(2), read_file(1))
koks_tv = Tv(read_file(5), read_file(4))
choice = None
print("***Välkommen till TV-simulatorn***")
while choice != "3":
print("""
1. Vardagsrums TV
2. Köks TV
3. Avsluta
""")
choice = input("Välj ett alternativ: ")
print("")
while choice == "1":
print(vardagsrums_tv)
print("""
1. Byt kanal
2. Sänk ljudvolymen
3. Höj ljudvolymen
4. Återvänd till huvudmenyn
""")
choice_one = input("Välj ett alternativ: ")
if choice_one == "1":
vardagsrums_tv.byt_kanal()
elif choice_one == "2":
vardagsrums_tv.sank_volym()
elif choice_one == "3":
vardagsrums_tv.hoj_volym()
elif choice_one == "4":
choice = None
break
else:
print("Var god välj ett av de fyra alternativen.")
while choice == "2":
print(koks_tv)
print("""
1. Byt kanal
2. Sänk ljudvolymen
3. Höj ljudvolymen
4. Återvänd till huvudmenyn
""")
choice_two = input("Välj ett alternativ: ")
if choice_two == "1":
koks_tv.byt_kanal()
elif choice_two == "2":
koks_tv.sank_volym()
elif choice_two == "3":
koks_tv.hoj_volym()
elif choice_two == "4":
choice = None
break
else:
print("Var god välj ett av de fyra alternativen.")
if choice not in ("1", "2", "3", None):
print("Du har angivit ett felaktigt alternativ. Försök igen!")
lista_1 = []
lista_1.append(vardagsrums_tv)
print(lista_1)
lista_2 =[]
lista_2.append(koks_tv)
write_file(lista_1, lista_2)
在main()函数的末尾,您会注意到我正在试验如何将当前设置保存到文本文件中。我创建了一个列表,试图以某种方式从我的对象“vardagsrums_tv”和“koks_tv”中获取信息。我想,如果您可以打印一个对象并获取设置,那么您也可以将其附加到列表中。很明显,它没有按计划工作,因为我犯了一个错误
我希望您理解我的意图:我想将对象(vardagsrums_tv、koks_tv)内部的信息保存到文本文件中,但我似乎无法获取所需的信息
以下是程序的其余部分:
def read_file(val):
val = val
text_file = open("C:\\Users\\Viktor\\Desktop\\laboration_5.txt", "r")
textrader = text_file.readlines()
lista = []
for i in range(len(textrader)):
text_line = textrader[i]
element = text_line.split(",")
lista += element[0], element[1], element[2]
text_file.close()
return lista[val]
def write_file(tv_1, tv_2):
rad_1 = tv_1
rad_2 = tv_2
for i in range(len(vardagsrums_tv)):
rad_1 += vardagsrums_tv[i], ","
for i in range(len(koks_tv)):
rad_2 += koks_tv[i], ","
text_file = open("C:\\Users\\Viktor\\Desktop\\laboration_5.txt", "w")
text_file.append(rad_1)
text_file.append(rad_2)
text_file.close
class Tv(object):
"""En vardagsrums TV"""
def __init__(self, kanal, volym):
self.kanal = int(kanal)
self.volym = int(volym)
def __str__(self):
rep = "Vardagsrums TV\n"
rep += "Kanal: " + str(self.kanal) + "\n"
rep += "Volym: " + str(self.volym) + "\n"
return rep
def byt_kanal(self):
kanal = int(input("Ange din önskade kanal: "))
while kanal < 1 or kanal > 100:
print("Du har angivet en felaktig kanal. Vänlig ange en kanal mellan 1 och 100!")
kanal = int(input("Ange din önskade kanal: "))
self.kanal = kanal
def hoj_volym(self, hoj = 1):
self.volym += hoj
if self.volym > 10:
print("Du kan inte höja volymen ytterligare.")
self.volym = 10
def sank_volym(self, sank = 1):
self.volym -= sank
if self.volym < 0:
print("Du kan inte sänka volymen ytterligare.")
self.volym = 0
def main():
vardagsrums_tv = Tv(read_file(2), read_file(1))
koks_tv = Tv(read_file(5), read_file(4))
choice = None
print("***Välkommen till TV-simulatorn***")
while choice != "3":
print("""
1. Vardagsrums TV
2. Köks TV
3. Avsluta
""")
choice = input("Välj ett alternativ: ")
print("")
while choice == "1":
print(vardagsrums_tv)
print("""
1. Byt kanal
2. Sänk ljudvolymen
3. Höj ljudvolymen
4. Återvänd till huvudmenyn
""")
choice_one = input("Välj ett alternativ: ")
if choice_one == "1":
vardagsrums_tv.byt_kanal()
elif choice_one == "2":
vardagsrums_tv.sank_volym()
elif choice_one == "3":
vardagsrums_tv.hoj_volym()
elif choice_one == "4":
choice = None
break
else:
print("Var god välj ett av de fyra alternativen.")
while choice == "2":
print(koks_tv)
print("""
1. Byt kanal
2. Sänk ljudvolymen
3. Höj ljudvolymen
4. Återvänd till huvudmenyn
""")
choice_two = input("Välj ett alternativ: ")
if choice_two == "1":
koks_tv.byt_kanal()
elif choice_two == "2":
koks_tv.sank_volym()
elif choice_two == "3":
koks_tv.hoj_volym()
elif choice_two == "4":
choice = None
break
else:
print("Var god välj ett av de fyra alternativen.")
if choice not in ("1", "2", "3", None):
print("Du har angivit ett felaktigt alternativ. Försök igen!")
lista_1 = []
lista_1.append(vardagsrums_tv)
print(lista_1)
lista_2 =[]
lista_2.append(koks_tv)
write_file(lista_1, lista_2)
main()
input("Vänligen tryck enter för att avsluta.")
def read_文件(val):
瓦尔=瓦尔
text\u file=open(“C:\\Users\\Viktor\\Desktop\\laboration\u 5.txt”,“r”)
textrader=text_file.readlines()
lista=[]
对于范围内的i(len(textrader)):
text_line=textrader[i]
元素=文本\行。拆分(“,”)
lista+=元素[0],元素[1],元素[2]
text_file.close()
返回列表a[val]
def写入文件(tv_1、tv_2):
无线电1=电视1
rad_2=tv_2
对于范围内的i(len(vardagsrums_tv)):
rad_1+=vardagsrums_tv[i],“,”
对于范围内的i(len(koks_tv)):
rad_2+=koks_tv[i],“,”
text\u file=open(“C:\\Users\\Viktor\\Desktop\\laboration\u 5.txt”,“w”)
text_file.append(rad_1)
text_file.append(rad_2)
text\u file.close
类别Tv(对象):
“En vardagsrums TV”
定义初始化(self、kanal、volym):
self.kanal=int(kanal)
self.volym=int(volym)
定义(自我):
rep=“Vardagsrums TV\n”
rep+=“假名:”+str(self.Kanal)+“\n”
rep+=“Volym:”+str(self.Volym)+“\n”
退货代表
def byt_kanal(自身):
kanal=int(输入(“Ange dinönskade kanal:”)
当假名<1或假名>100时:
印刷品(“1 och 100!”
kanal=int(输入(“Ange dinönskade kanal:”)
self.kanal=kanal
定义hoj_volym(自身,hoj=1):
self.volym+=hoj
如果self.volym>10:
印刷品(“dukan inte höja volymen ytterligare.”)
self.volym=10
def SUNK_volym(自身,SUNK=1):
self.volym-=下沉
如果self.volym<0:
印刷品(“Du kan inte sänka volymen ytterligare.”)
self.volym=0
def main():
vardagsrums_tv=tv(读取文件(2),读取文件(1))
koks_tv=tv(读取文件(5),读取文件(4))
选择=无
打印(***Välkommen直到电视模拟器***”)
而选择!="3":
打印(“”)
1.Vardagsrums电视
2.科克斯电视台
3.Avsluta
""")
选择=输入(“Välj ett alternativ:”)
打印(“”)
而选项==“1”:
打印(vardagsrums_tv)
打印(“”)
1.比亚特卡纳尔
2.Sänk ljudvolymen
3.Höj Ljudwolymen
4.奥泰尔·蒂尔·胡武德梅恩
""")
选项一=输入(“Välj ett alternativ:”)
如果选项_one==“1”:
vardagsrums_tv.byt_kanal()
elif choice_one==“2”:
vardagsrums_tv.sink_volym()
elif choice_one==“3”:
vardagsrums_tv.hoj_volym()
elif choice_one==“4”:
选择=无
打破
其他:
打印(“Var god välj ett av de fyra Alternative.”
而选项==“2”:
印刷品(koks_tv)
打印(“”)
1.比亚特卡纳尔
2.Sänk ljudvolymen
3.Höj Ljudwolymen
4.奥泰尔·蒂尔·胡武德梅恩
""")
选项二=输入(“Välj ett alternativ:”)
如果选项_two==“1”:
koks_tv.byt_kanal()
elif choice_two==“2”:
科克斯电视台
elif choice_two==“3”:
koks_tv.hoj_volym()
elif choice_two==“4”:
选择=无
打破
其他:
打印(“Var god välj ett av de fyra Alternative.”
如果选择不在(“1”、“2”、“3”中,则无):
印刷品(“Du har angivit ett felaktigt alternativ.Försök igen!”)
列表a_1=[]
列表A_1.附加(vardagsrums_tv)
打印(列表1)
lista_2=[]
列表2.附加(koks_tv)
写入文件(列表1、列表2)
main()
输入(“Vänligen tryck enter för att avsluta.”
您应该用“a”
(附加)而不是“w”
(写入)打开您的laboration_5.txt
文件,否则它将覆盖该文件。然后使用text\u file.write(data)
将数据追加到此文件。确保随后使用text\u file.close()
关闭文件
你考虑过吗?也可以在网上阅读。关于管理对象,请查看带有语句的
!然后你不必“确定”任何事情;Python处理它<代码>打开(“C:\\Users\\Viktor\\Desktop\\laboration\u 5.txt”,“a”)作为文本文件:
,然后将两个写入
放在缩进块中,您根本不需要关闭
。同意,但这对作者的原始代码影响最小。这似乎是形势正确的举措。
text_file = open("C:\\Users\\Viktor\\Desktop\\laboration_5.txt", "a")
text_file.write(rad_1)
text_file.write(rad_2)
text_file.close()