如何在file.txt中写入列表框的数据

时间:2019-11-15 11:47:24

标签: python list sqlite tkinter python-3.6

我无法在名为"nuovo_file"的列表框中看到的记录中名为"dovutolist"的文件中写入内容。文件已创建,但未写入任何数据。

代码是这样的:

   def Salva_File():
        percorso_file=tkinter.filedialog.asksaveasfile().name
        lista=list(dovutolist.get(0,END))
        print(lista)
        nuovo_file=open(percorso_file,"w")

        for i in range(len(lista)):
            nuovo_file.write(lista[i]+'\n')
        nuovo_file.close

我得到的错误是这个:

nuovo_file.write(lista[i]+'\n')
TypeError: can only concatenate tuple (not "str") to tuple

能请你帮我吗?

2 个答案:

答案 0 :(得分:0)

经过许多测试之后,我设法解决了,至少绕过了障碍,得到了想要的东西,这是代码:

def isiDovuto_stampa():
percorso_file = tkinter.filedialog.asksaveasfile ().name
nuovo_file = open (percorso_file, "w")
conn = sqlite3.connect('isi_dovuto.db')
with conn:
    cursore = conn.cursor()
    cursore = conn.cursor()
    cursore.execute("SELECT * FROM isi_dovuto")
    while True:
        # fin tanto che True è vero, cioè il ciclo apparentemente non termina mai ...
        # as long as True is true, that is the cycle apparently never ends ...
        righe = cursore.fetchall()

        if len(righe) > 0:
        # se abbiamo delle righe, le stampa
        # if we have lines, press
            for riga in righe:

                #print(riga)
                nuovo_file.write(str(riga)+'\n''\n')

            else:
        # altrimenti interrompe forzatamente il ciclo while
        # otherwise it forcibly interrupts the while loop
                break
nuovo_file.close ()

return righe

答案 1 :(得分:-1)

您必须在文件名中加上引号:

例如:

nuovo_file=open('file_name.txt','w')

您还应该知道,下次您进入程序时,写(w)还将覆盖所有数据。您可以使用append(a +)进行多次写入。这将保留先前的数据。