Задать вопрос
@neuro4live

Запись в csv файл списка пользователей?

Здравствуйте! Мне необходимо сохранять список пользователей канала телеграм в csv файл. Вот код:
from telethon import TelegramClient, sync
import pandas as pd


api_id = 35
api_hash = '80b6e634ывавыавыe35e9abfc'
phone = '+79авава1'
limit = 100

client = TelegramClient('xxx', api_id, api_hash).start()

# get all the channels that I can access
channels = {d.entity.username: d.entity
            for d in client.get_dialogs()
            if d.is_channel}

# choose the one that I want list users from
channel = channels['имя канала']

# get all the users and print them
for u in client.get_participants(channel):
   print(u.id)



#create a pandas dataframe
#df = pd.DataFrame([u.id])
df = pd.DataFrame({'user_id': [u.id]})
#create a csv file
df.to_csv("data.csv")


В окно терминала выводится список всех пользователей канала, но в csv файл записывается почему-то только последний, из выведенного списка. Нужно чтобы в csv файл записывались все пользователи. Заранее спасибо
  • Вопрос задан
  • 233 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@wert-rar
привет! судя по всему ты создаешь файл в которое записываешь только новое значение, а старые стираешь
вот пример :
import csv


def write_to_csv(data):
    with open('data.csv', 'w', newline='') as csvfile:
        writer = csv.writer(csvfile, delimiter=' ', )
        writer.writerow(data)


def read_csv():
    with open('data.csv', newline='') as csvfile:
        reader = csv.reader(csvfile, delimiter=' ')
        for row in reader:
            print(', '.join(row))


id_ = [1, 2, 3, 4, 5, 6, 7, 8]
for i in id_:
    write_to_csv([i])
read_csv()  # 8

write_to_csv(id_)
read_csv()  # 1,2,3,4,5,6,7,8


чтобы добавлять запись нужно использовать это :
df.to_csv("data.csv",mode = "a",header = False)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы