所以我有一个文件,每行都有一个url。我正在使用discord.py将其打印到Discord频道。这是我的代码:
with open('myfile.txt') as f:
for line in itertools.zip_longest(*[f]*10, fillvalue = ' '):
await channel.send(line)
我使用此代码是因为Discord在邮件中的字符数限制为2000。我不知道我的名单有多久,因为它是从另一个Python脚本定期更新的。因此,我选择使其一次打印10行。使用上面的代码将始终打印整个文件,行数不必是10的倍数,这正是我想要的。
问题在于,每个输出消息都用()括起来,并且在每个项目的末尾添加/ n或n%27。如您所料,这会断开链接。
我该怎么做呢?我可以忍受(),但必须删除项目末尾的内容。基本上,我希望整个内容打印时都用“”分隔。
请帮助。谢谢!
LE:为澄清起见,输入(文件内容)如下:
https://www.google1.com
https://www.google2.com
https://www.google3.com
https://www.google4.com
我的代码输出如下:
('https://www.google1.com/n'、'https://www.google2.com/n'、'https://www.google3.com/n'、'https:/ /www.google4.com/n%27)
答案 0 :(得分:0)
因此,在尝试了几种想法之后,我终于设法使其正常工作。我的代码将从文件中读取的每一行都转换为一个元组。因此,它打印到我的不和谐频道上的所有内容都是元组,因此是换行符。
如果还有其他人遇到此问题,我通过将元组转换为字符串然后打印来解决此问题。现在输出看起来与我的文件内容相同。
新代码是这样的:
with open('myfile.txt') as f:
for line in itertools.zip_longest(*[f]*10, fillvalue = ' '):
x = ''.join(line)
await channel.send(x)
答案 1 :(得分:0)
您也可以通过这种方式修复
with open("myfile.txt", 'r') as f:
for line in f.readlines():
await channel.send(line.split('/')[0])