Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 24, 2019 12:11:04

EugeneK
Зарегистрирован: 2018-12-28
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

Всем привет.
Кто может подсказать? Как можно записать 2 lista в 1 csv-файл. В 1 столбик 1 list в 2 столбик 2 list
Как я получаю список:

 import pyad.adgroup
import csv
list_login_user= []
list_FIO_user = []
w = pyad.adgroup.ADGroup.from_cn("Имя Группы")
for m in w.get_members():
    list_login_user.append(m.SamAccountName)
    list_FIO_user.append(m.name)
print(list_login_user)
#
with open('test.csv', 'w', newline='') as login_user:
    a = csv.writer(login_user, delimiter=',')
    for login in list_login_user:
        a.writerow([login])
сейчас я получаю в 1 столбце только логины, но я еще выбираю ФИО, но вот как в 1 csv вставить 2 столбиком 2 список я пока не знаю.

Офлайн

#2 Янв. 24, 2019 12:31:52

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

например как то так

 for data_row in zip(list_login_user, list_FIO_user):
        a.writerow(data_row)



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Янв. 24, 2019 12:54:15

EugeneK
Зарегистрирован: 2018-12-28
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

JOHN_16
Спасибо за ответ. Я тоже так пробовал. Уже просто сбился с попыток.
по варианту выше получаю логин и ФИО в 1 ячейке(А1, А2, А3), а не в столбце 1 логин, а 2 ФИО
#####
Можно конечно через эксел это делать. НО это как-то “неочень”

Отредактировано EugeneK (Янв. 24, 2019 13:42:37)

Офлайн

#4 Янв. 24, 2019 15:39:25

EugeneK
Зарегистрирован: 2018-12-28
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

Вопрос решен проблема была в list separator в региональных настройках ОС
Где менять.
https://resrequest.helpspot.com/index.php?pg=kb.page&id=279

  for data_row in zip(list_login_user, list_FIO_user):
        a.writerow(data_row)
эта штука работает

Офлайн

#5 Янв. 24, 2019 16:14:12

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

EugeneK
a = csv.writer(login_user, delimiter=',')
вы сами указали разделитель запятую. Если у вас заранее известно что запятая не подходит используйте другой, как вариант точка с запятой достаточно популярен.
Но вообще не плохо понимать что CSV это простой формат, с не оч простой судьбой

Обратите внимание на диалекты



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#6 Янв. 24, 2019 16:15:42

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

менять настройки ОС это вверх неразумности. Тем более что ексель и подобные программы при открытии файла предлагают выбрать разделитель и делают предпросмотр. А если на принимаемой стороне как то иначе используют эти файлы, то договаривайтесь о формате.



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#7 Янв. 25, 2019 09:34:44

EugeneK
Зарегистрирован: 2018-12-28
Сообщения: 24
Репутация: +  0  -
Профиль   Отправить e-mail  

Записать 2 lista в 1 CSV

JOHN_16
Спасибо за подсказку.
А то как-то костылями тоже не хотелось это делать. Вернул все назад. Поменял только сам разделитель, на правильный. А то опыта большого нет при работе с CSV. Да и судьба у него точно не простая хоть и есть RFC, но и вроде его и нет.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version