【问题标题】:how to store user {name} if the user doesn't have {username} telegram bot python如果用户没有{username}电报bot python,如何存储用户{name}
【发布时间】:2021-09-19 14:01:31
【问题描述】:

如果用户没有{username}电报bot python,如何存储用户{name}?

我正在使用 python 3.8 和 telegram-python-bot 库!

我试过了,但它不起作用>>>

user = ({update.effective_user.username})
name = ({update.effective_user.first_name})

if user == 'None':
    print (user)
    with open('BOTUsers.txt') as addname:
        contentsN = addname.read()
        search_wordN = (name)
        addname.close
        if (str (search_wordN)) in contentsN:
            print ("[=] Name Already Exist!")
        else:
            filename = open ("BOTUsers.txt" , 'a')
            filename.write(str(name))
            filename.write("\n")
            filename.close
            print ("[+] New Name added!")
            CounterUser += 1
else:
    with open('BOTUsers.txt') as adduser:
        contentsU = adduser.read()
        search_wordU = (user)
        adduser.close
        if (str (search_wordU)) in contentsU:
            print ("[=] User Already Exist!")

我希望代码检查用户是否“无”存储其名称

【问题讨论】:

  • 应该是if not user: 而不是if user == 'None':
  • @sMx_7d 我认为你需要更多的 Python 知识来理解我评论中的代码建议
  • @GhostOps np 我会测试你的建议
  • 我建议像user = update.effective_user.username 一样尝试它,并执行我在上面添加的相同检查
  • 如果您需要不区分大小写的比较,您可以执行str(user).lower() in ('none', '') - 这基本上将user 转换为字符串(如果它还不是字符串),然后查找该值是否在元组。

标签: python telegram telegram-bot python-telegram-bot


【解决方案1】:

这个怎么样?您可以将 user_id 而不是 first_name 或 username 写入 BOTUsers.txt 吗?然后就可以读取user_id为SearchWord的文件了

# user = ({update.effective_user.username})
# name = ({update.effective_user.first_name})
user_id = ({update.effective_user.id})
is_user_in_file = False

with open('BOTUsers.txt') as adduser:
    contentsU = adduser.read()
    search_wordU = (user_id)
    adduser.close
    if (str (search_wordU)) in contentsU:
        is_user_id_in_file = True

if not is_user_id_in_file:
    print (user_id)
    with open('BOTUsers.txt') as add_id:
        contentsN = add_id.read()
        search_wordN = (user_id)
        add_id.close
        if (str (search_wordN)) in contentsN:
            print ("[=] Name Already Exist!")
        else:
            filename = open ("BOTUsers.txt" , 'a')
            # filename.write(str(name))
            filename.write(str(user_id))
            filename.write("\n")
            filename.close
            print ("[+] New User ID added!")

【讨论】:

    猜你喜欢
    • 2017-11-17
    • 2018-11-25
    • 2018-10-27
    • 2019-09-06
    • 2022-01-05
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多