Python: создание CSV из двух списков - PullRequest
0 голосов
/ 27 августа 2018

Предположим, у меня есть два списка:

users = [ user1, user2, user3, ...]
codes = [ code1, code2, code3, ...]

И я хочу создать CSV, где я назначаю код каждому пользователю, как это:

users, codes
user1, code1
user2, code2 

Я пытался в течение нескольких дней, и я не могу найти решение. Я пытался расширить список, но он не работает так, как предполагалось. Спасибо за

Ответы [ 5 ]

0 голосов
/ 27 августа 2018

у меня сработало (от https://docs.python.org/2/library/csv.html)

        users = ['user1', 'user2', 'user3']
        codes = ['code1', 'code2', 'code3']
        with open('output.csv', 'wb') as csvFile:
            fieldnames = ['USER', 'CODE']
            output = csv.DictWriter(csvFile, fieldnames=fieldnames)
            output.writeheader()
            for index, user in enumerate(users):
                output.writerow({'USER': user, 'CODE': codes[index]})

Я получил:

enter image description here

0 голосов
/ 27 августа 2018

Если вы используете этот код, импорт не требуется:

users = [ 'user1', 'user2', 'user3']
codes = [ 'code1', 'code2', 'code3']

with open('solution.csv', 'w') as f:
    f.write('users,codes\n')
    for user, code in zip(users, codes):
        f.write('{},{}\n'.format(user, code))

Он создаст вам файл, подобный этому:

users,codes
user1,code1
user2,code2
user3,code3
0 голосов
/ 27 августа 2018

это довольно распространенная вещь. Посмотрите на модуль pandas, как указал @Denziloe, или используйте csv.writer:

import csv
with open("my_csv", "w") as f:
   writer = csv.writer(f)
   writer.writerow(["user", "code"])
   for a, b in zip(users, codes):
       writer.writerow([a, b])
0 голосов
/ 27 августа 2018

Вы можете использовать pandas, чтобы сохранить эту информацию в кадре данных, а затем использовать df.to_csv():

import pandas as pd

users = ['user1', 'user2', 'user3']
codes = ['code1', 'code2', 'code3']

pairs = {'Users': users, 'Codes': codes}

df = pd.DataFrame.from_dict(pairs)

df.to_csv('mycsv.csv')
0 голосов
/ 27 августа 2018

Использование zip с csv модулем

Ex:

import csv    

users = [ 'user1', 'user2', 'user3']
codes = [ 'code1', 'code2', 'code3']

with open(filename, "w") as infile:
    writer = csv.writer(infile)
    writer.writerow(["users", "codes"])    #Write Header
    for i in zip(users, codes):
        writer.writerow(i)                 #Write Content
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...