python - 如何按特定列的值删除行?
问题描述
我已经制作了这个代码脚本,我试图删除我的 csv 文件中“用户名”列的特定行,而添加循环正在运行我的 excel 文件看起来像这样
我试图做到这一点,一路迷路,谢谢你们的帮助
我想知道添加完成后删除该行我添加了我添加的行在这里我需要插入删除方法
from telethon.sync import TelegramClient
from telethon.tl.functions.messages import GetDialogsRequest
from telethon.tl.types import InputPeerEmpty, InputPeerChannel, InputPeerUser
from telethon.errors.rpcerrorlist import PeerFloodError, UserPrivacyRestrictedError
from telethon.tl.functions.channels import InviteToChannelRequest
import sys
import csv
import traceback
import time
api_id = 123456
api_hash = '############################'
phone = '+11111111111'
client = TelegramClient(phone, api_id, api_hash)
client.connect()
if not client.is_user_authorized():
client.send_code_request(phone)
client.sign_in(phone, input('Enter the code: '))
users = []
with open("filepath/members.csv", encoding='UTF-8') as f:
rows = csv.reader(f,delimiter=",",lineterminator="\n")
next(rows, None)
for row in rows:
user = {}
user['username'] = row[0]
user['id'] = int(row[1])
user['access_hash'] = int(row[2])
user['name'] = row[3]
users.append(user)
chats = []
last_date = None
chunk_size = 200
groups=[]
result = client(GetDialogsRequest(
offset_date=last_date,
offset_id=0,
offset_peer=InputPeerEmpty(),
limit=chunk_size,
hash = 0
))
chats.extend(result.chats)
for chat in chats:
try:
if chat.megagroup== True:
groups.append(chat)
except:
continue
print('Choose a group to add members:')
i=0
for group in groups:
print(str(i) + '- ' + group.title)
i+=1
g_index = input("Enter a Number: ")
target_group=groups[int(g_index)]
target_group_entity = InputPeerChannel(target_group.id,target_group.access_hash)
mode = int(input("Enter 1 to add by username or 2 to add by ID: "))
for user in users:
try:
print ("Adding {}".format(user['id']))
if mode == 1:
if user['username'] == "":
continue
user_to_add = client.get_input_entity(user['username'])
#HERE I NEED TO INSERT THE DELETE METHOD HERE
elif mode == 2:
user_to_add = InputPeerUser(user['id'], user['access_hash'])
else:
sys.exit("Invalid Mode Selected. Please Try Again.")
client(InviteToChannelRequest(target_group_entity,[user_to_add]))
print("Waiting 5 Seconds...")
time.sleep(5)
except PeerFloodError:
print("Getting Flood Error from telegram. Script is stopping now. Please try again after some time.")
except UserPrivacyRestrictedError:
print("The user's privacy settings do not allow you to do this. Skipping.")
except:
traceback.print_exc()
print("Unexpected Error")
continue
解决方案
推荐阅读
- rust - 基于封装数据的 Rust Enums 的 PartialOrd
- android - Recyclerview 项目在再次获取数据时增加高度 Android Kotlin
- elasticsearch - 使用 filebeat 从无法管理的文件夹结构中传送大量日志
- python - 如何在排列列表中找到一个键?
- java - 如何通过 gson 将 json 反序列化为嵌套的自定义地图?
- javascript - 根据关键字对象返回对象数组
- javascript - 使用 htmx 和 tinymce 时出现错误列表
- algorithm - 插入排序和线性搜索同时VS插入排序和二进制搜索?
- javascript - 在 getServerSideProps() 中使用 NextAuth 挂钩 useSession()
- reactjs - 我们可以将数据表导出到 Excel 而不是 CSV(React bootstrap table2)吗?