Bagaimana cara menambahkan tajuk ke baris satu di csv?

Solusi saya saat ini menambahkan semuanya

Sesuatu seperti: writer.writerow(['DataA', 'DataB', 'DataC', 'DATA D'])[0]

Saya merasa ada cara mudah untuk melakukan ini dan saya mengabaikan yang sudah jelas.

Saya telah melihat banyak contoh online tetapi saya masih kesulitan bagaimana Anda dapat dengan mudah melakukan ini dalam csv.

Sebagai contoh katakanlah saya ingin mengikis data SO - memuat Selenium, tulis itu menjadi empat kolom dan lakukan ini selama 20 halaman. Saya ingin menulis tajuk ke baris 1 setiap kali dan kemudian menambahkan data yang tergores

with open('C:\\fa.csv', 'a+', newline='', encoding="utf-8") as outfile:
    writer = csv.writer(outfile)
    writer.writerow(['DataA', 'DataB', 'DataC', 'DataD'])
    for row in zip(ZAW_text, RESULTS1, RESULTS):
        writer.writerow(row)
        #writer.writerows({'Date': row[0], 'temperature 1': row[1], 'temperature 2': 0.0} for row in writer)
        print(row)
2
user8900239 1 Desember 2017, 11:28

1 menjawab

Jawaban Terbaik
import csv
import os

file_name = 'C:\\fa.csv'
fake_data = [[1, 2, 3, 4, 5, 4444, 6, 67], [1, 2, 3, 4, 5, 4444, 6, 67],
             [1, 2, 3, 4, 5, 4444, 6, 67], [1, 2, 3, 4, 5, 4444, 6, 67]]
headers = ['DataA', 'DataB', 'DataC', 'DataD']

if os.path.isfile(file_name):
  with open(file_name, 'a', encoding="utf-8") as outfile:
    writer = csv.writer(outfile)
    for datum in fake_data:
      writer.writerow(datum)
else:
  with open(file_name, 'w', encoding="utf-8") as outfile:
    writer = csv.writer(outfile)
    writer.writerow(headers)
    for datum in fake_data:
      writer.writerow(datum)

Di baris pertama open('C:\\fa.csv', 'a+', newline='', encoding="utf-8") Anda memiliki a+ yang tambahkan Anda ingin w yang menulis.

Lihat ini: https://docs.python. org/3/tutorial/inputoutput.html#reading-and-writing-files

3
AtHeartEngineer 1 Desember 2017, 08:56