在声明变量时使用if else



我正在编写一个脚本,将代理文件从目录发送到电报通道。在一些好心人的帮助下,我几乎完成了它

from telegram import Bot, InputMediaDocument
BOT_TOKEN = "xxx"
CHAT_ID = xxx

def main():
bot = Bot(BOT_TOKEN)
file_paths = (
"proxy/proxies/http.txt",
"proxy/proxies/socks4.txt",
"proxy/proxies/socks5.txt"
)
path_http = "proxy/proxies/http.txt"
with open(path_http,'rb') as file_http:
http_count = len(file_http.readlines())
file_http.close()
path_socks4 = 'proxy/proxies/socks4.txt'
with open(path_socks4,'rb') as file_socks4:
socks4_count = len(file_socks4.readlines())
file_socks4.close()
path_socks5 = 'proxy/proxies/socks5.txt'
with open(path_socks5,'rb') as file_socks5:
socks5_count = len(file_socks5.readlines())
file_socks5.close()
text = f"Total HTTPs:{http_count}nTotal SOCKS4:{socks4_count}nTotal SOCKS5:{socks5_count}"
media_group = list()
for f in file_paths:
with open(f, "rb") as fin:
caption = text if f == "proxy/proxies/http.txt" else ''
fin.seek(0)
media_group.append(InputMediaDocument(fin, caption=caption))
bot.send_media_group(CHAT_ID, media=media_group)

if __name__ == "__main__":
main()

问题发生

media_group = list()
^
IndentationError: unindent does not match any outer indentation level

我尝试的是将这3个带有标题的代理文件发送到第一个代理文件

你的代码有几个问题:

  1. 缺少适当的缩进
  2. 括号关闭不当

您在path_http = 'proxy/proxies/http.txt'行上得到的SyntaxError是因为您没有关闭上一行的括号(您初始化变量file_paths的行)。

我还预见到,当您尝试使用open函数打开文件时,您将面临问题。你可以在这里找到一些例子:https://www.programiz.com/python-programming/file-operation

在一些好心人的帮助下,我使它工作,如果有任何简单的版本,请自由分享

from telegram import Bot, InputMediaDocument
BOT_TOKEN = "xxxxx"
CHAT_ID = -1000000
def http():
path_http = 'proxy/proxies/http.txt'
with open(path_http, 'rb') as file_http:
http_count = len(file_http.readlines())
return http_count
def socks4():
path_socks4 = 'proxy/proxies/socks4.txt'
with open(path_socks4, 'rb') as file_socks4:
socks4_count = len(file_socks4.readlines())
return socks4_count
def socks5():
path_socks5 = 'proxy/proxies/socks5.txt'
with open(path_socks5, 'rb') as file_socks5:
socks5_count = len(file_socks5.readlines())
return socks5_count        
http_count = http()
socks4_count = socks4()
socks5_count = socks5()
text = f"Total HTTPs:{http_count}nTotal SOCKS4:{socks4_count}nTotal SOCKS5: {socks5_count}"
def main():
bot = Bot(BOT_TOKEN)
file_paths = (
"proxy/proxies/http.txt",
"proxy/proxies/socks4.txt",
"proxy/proxies/socks5.txt"
)
media_group = list()
for f in file_paths:
with open(f, "rb") as fin:
caption = text if f == "proxy/proxies/socks5.txt" else '' 
fin.seek(0)
media_group.append(InputMediaDocument(fin, caption=caption))
bot.send_media_group(CHAT_ID, media=media_group)
if __name__ == "__main__":
main()    
' file_paths = ("代理/代理/http.txt","代理/代理/socks4.txt","代理/代理/socks5.txt">

无效语法错误,可能是因为)最后不存在。
尝试添加(")caption = text if f == "proxy/proxies/http.txt" else '',因为它是一个字符串

最新更新