Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用python将信息保存到文件?(简单编程)_Python_File_Text_Save - Fatal编程技术网

如何用python将信息保存到文件?(简单编程)

如何用python将信息保存到文件?(简单编程),python,file,text,save,Python,File,Text,Save,在下面的程序中,我创建了一个名为“Tv”的类,并从该类中实例化了两个对象,分别称为“vardagsrums_Tv”和“koks_Tv”。在程序的主要功能中,用户可以通过我创建的某些类方法更改两个对象中的不同设置,例如音量和频道。到目前为止,一切顺利 但问题的核心是,当用户更改了这些不同的设置(音量、频道)时,我想将它们保存到一个文本文件中,这样当用户关闭并重新打开程序时,所有设置都将与用户离开时相同 这是我的节目: def main(): vardagsrums_tv = Tv(read_fil

在下面的程序中,我创建了一个名为“Tv”的类,并从该类中实例化了两个对象,分别称为“vardagsrums_Tv”和“koks_Tv”。在程序的主要功能中,用户可以通过我创建的某些类方法更改两个对象中的不同设置,例如音量和频道。到目前为止,一切顺利

但问题的核心是,当用户更改了这些不同的设置(音量、频道)时,我想将它们保存到一个文本文件中,这样当用户关闭并重新打开程序时,所有设置都将与用户离开时相同

这是我的节目:

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()