Szukaj…


Wprowadzenie

W większości przypadków zapis do pliku .csv jest podobny do zapisu do zwykłego pliku i jest dość prosty. W miarę moich możliwości obejmę najłatwiejsze i najbardziej wydajne podejście do problemu.

Parametry

Parametr Detale
open ( „/ path /” , „mode”) Podaj ścieżkę do pliku CSV
otwarty (ścieżka, „tryb” ) Określ tryb otwierania pliku (odczyt, zapis itp.)
csv.writer ( plik , separator) Prześlij otwarty plik CSV tutaj
csv.writer (plik, separator = '' ) Podaj znak lub wzór ogranicznika

Uwagi

open( path, "wb")

"wb" - tryb zapisu.

Używany przez nas parametr b w "wb" jest konieczny tylko wtedy, gdy chcesz go otworzyć w trybie binarnym, który jest potrzebny tylko w niektórych systemach operacyjnych, takich jak Windows.

csv.writer ( csv_file, delimiter=',' )

Tutaj separator użyliśmy, to , ponieważ chcemy każdą komórkę danych w rzędzie, aby zawierać imię, nazwisko i wiek odpowiednio. Ponieważ nasza lista jest podzielona wzdłuż , też okazuje się dość wygodne dla nas.

Podstawowy przykład zapisu

import csv

#------ We will write to CSV in this function ------------

def csv_writer(data, path):
    
    #Open CSV file whose path we passed.
    with open(path, "wb") as csv_file:
        
        writer = csv.writer(csv_file, delimiter=',')
        for line in data:
            writer.writerow(line)



#---- Define our list here, and call function ------------

if __name__ == "__main__":

    """
    data = our list that we want to write. 
    Split it so we get a list of lists.
    """
    data = ["first_name,last_name,age".split(","),
            "John,Doe,22".split(","),
            "Jane,Doe,31".split(","),
            "Jack,Reacher,27".split(",")
            ]

    # Path to CSV file we want to write to.
    path = "output.csv"
    csv_writer(data, path)

Dołączanie ciągu znaków jako nowego wiersza w pliku CSV

def append_to_csv(input_string):
    with open("fileName.csv", "a") as csv_file:
        csv_file.write(input_row + "\n")


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow