Я хочу, чтобы мой скрипт Python улучшил CSV-файл.
Мой input.csv выглядит следующим образом:
Код: Выделить всё
test_case,test_desc,"test data 1","test data 2"
,0,"",
Код: Выделить всё
test_case,test_desc,"test data 1","test data 2",col_1,col_2
,0,"",,,
Код: Выделить всё
import csv
from pathlib import Path
source_headers = []
source_data = []
# Read the 'input.csv'
with Path('input.csv').open() as file:
headers = csv.reader(file)
for line in headers:
source_headers = line
break
with Path('input.csv').open() as file:
lines = csv.DictReader(file)
for line in lines:
source_data.append(line)
print("source_headers: ", source_headers)
print("source_data: ", source_data)
# Specify the target_enhanced_headers
target_enhanced_headers = {'col_1': 'target col_1', 'col_2': 'target col_2'}
enhanced_headers = source_headers
enhanced_headers.extend(target_enhanced_headers)
enhanced_data = source_data
# Enhance the source data
for new_header in target_enhanced_headers:
enhanced_data[0][new_header] = ''
print("enhanced_headers: ", enhanced_headers)
print("enhanced_data: ", enhanced_data)
# Write new file
with Path('output.csv').open("w", encoding ="utf-8", newline='') as file:
writer = csv.DictWriter(file, fieldnames=enhanced_headers)
writer.writeheader()
writer.writerows(enhanced_data)
file.close()
Код: Выделить всё
source_headers: ['test_case', 'test_desc', 'test data 1', 'test data 2']
source_data: [{'test_case': '', 'test_desc': '0', 'test data 1': '', 'test data 2': ''}]
enhanced_headers: ['test_case', 'test_desc', 'test data 1', 'test data 2', 'col_1', 'col_2']
enhanced_data: [{'test_case': '', 'test_desc': '0', 'test data 1': '', 'test data 2': '', 'col_1': '', 'col_2': ''}]
Код: Выделить всё
test_case,test_desc,test data 1,test data 2,col_1,col_2
,0,,,,
Как заставить это работать в Python с помощью csv модуль?
Подробнее здесь: https://stackoverflow.com/questions/790 ... ble-quotes