Как сохранить список с записями в нем для печати в текстовый файл Python? - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь записать свой список strOtherLine в текстовый файл, но я получаю только последнюю запись моего списка вместо всех записей. Итак, я говорю, что если у меня есть эти 3 в моем списке, я получаю только последнюю запись в моем текстовом файле.

 [**********, 'Checking', '0000000000', '############']
 [**********, 'Checking', '0000000000', '############']
 [**********, 'Checking', '0000000000', '############']

Код:

if (strDdtype == "P" and len(strPc_AcctNo.strip()) or strDdtype == "C" or strDdtype == "S"):
       boolHasDirectDepositData = True
       intOtherRecs = intOtherRecs + 1
       boolHasOther = True
       if strDdtype == "S":
            strThisType = "Savings"
       else:
            strThisType = "Checking"
                    
       if strDdtype == "P":
            strThisRoute = strPc_Route
            strThisAcct = strPc_AcctNo
       else:
            strThisRoute = strBankRoute
            strThisAcct = strBankAcct
                        
            
       strOtherLine = [strSsn,strThisType,strThisRoute,strThisAcct]
       print(strOtherLine)
       if boolHasDirectDepositData:
          #===Writing to the text file
          with open(fc_otherfile,'w', newline='') :
              directdep = csv.writer(t, delimiter="\t")
              directdep.writerow(strOtherLine)

1 Ответ

0 голосов
/ 07 августа 2020

Режим w в open() перезаписывать файл каждый раз (Создание нового пустого файла). Вы должны использовать режим a, в этом случае, если файл не существует, сценарий создает новый, но он существует, тогда сценарий добавляет новые строки в файл.

Пример кода:

import csv

strOtherLine = [
    ["**********", "Checking", "0000000000", "############"],
    ["**********", "Checking", "0000000000", "############"],
    ["**********", "Checking", "0000000000", "############"],
]

my_csv_file = "test.csv"


with open("test.csv", "a") as opened_file:
    directdep = csv.writer(opened_file, delimiter="\n")  # Used "\n" for better reading
    directdep.writerow(strOtherLine)

Содержимое после первого запуска (файл не существует):

['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']

Содержимое после второго запуска ( Файл существует):

['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']
['**********', 'Checking', '0000000000', '############']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...