Python - 找到特定字符串时拆分文本文件的内容
Python - Split content of text file when specific string is found
我目前正在使用下面的代码拆分每 2000 个字符读取一次的文本文件的内容,以确保不超过 discord.py 消息限制。
这工作正常,但有一个小问题,有时一条消息中的一个词会被拆分成两条消息,因为代码只是在消息达到 2000 个字符时立即拆分消息。
我在想一个更好的解决方案是寻找一个特定的字符串,该字符串在文本文件中的每个内容块之间是通用的,并在找到该字符串时拆分。
我目前使用的代码如下
with open(info["textfile"], 'r') as file:
msg = file.read(2000).strip()
while len(msg) > 0:
await message.author.send(msg)
msg = file.read(2000).strip()
我想我需要使用 .contains 来搜索字符串,然后拆分要作为消息发送的文本文件的内容,但我不知道如何实现它。
文本文件内容示例如下:
__**Competition**__: Professional Boxing - 10 Rounds Lightweight Bout
__**Competitors:**__: Katie Taylor v Delfine Persoon
__**Match Date:**__: Saturday, 22nd August
__**Match Time:**__: ST: 21:00
__**Channels**__: DAZN USA
Sky Sports Box Office HD
-----
__**Competition**__: Professional Boxing - 12 Rounds Heavyweight Bout
__**Competitors:**__: Dillian Whyte v Alexander Povetkin
__**Match Date:**__: Saturday, 22nd August
__**Match Time:**__: ST: 22:00
__**Channels**__: DAZN USA
Sky Sports Box Office HD
-----
我在想最好搜索“-----”并在此时拆分文本文件的内容,然后将每组匹配数据作为单独的消息发送?
感谢任何可以为此问题提供帮助或解决方案的人。
感谢 dantechguy 和 Thomas Weller 的帮助,我遇到的问题的解决方案如下:
with open(info["textfile"], 'r') as file: # using with to open file means we don't have to close it after finishing
msg = file.read().strip().split ("--------------------") # reads content of textfile and split when "-------------------" is found and creates list of strings.
for item in msg: # for loop to call each item
print (item) # print to double check output
await message.author.send(item) # send each item as a new message in discord.
正如他们的评论中所解释的那样,所有需要做的都是在“--------------------”上拆分,将字符串拆分为字符串列表然后将每个项目作为消息发送。
我目前正在使用下面的代码拆分每 2000 个字符读取一次的文本文件的内容,以确保不超过 discord.py 消息限制。
这工作正常,但有一个小问题,有时一条消息中的一个词会被拆分成两条消息,因为代码只是在消息达到 2000 个字符时立即拆分消息。
我在想一个更好的解决方案是寻找一个特定的字符串,该字符串在文本文件中的每个内容块之间是通用的,并在找到该字符串时拆分。
我目前使用的代码如下
with open(info["textfile"], 'r') as file:
msg = file.read(2000).strip()
while len(msg) > 0:
await message.author.send(msg)
msg = file.read(2000).strip()
我想我需要使用 .contains 来搜索字符串,然后拆分要作为消息发送的文本文件的内容,但我不知道如何实现它。
文本文件内容示例如下:
__**Competition**__: Professional Boxing - 10 Rounds Lightweight Bout
__**Competitors:**__: Katie Taylor v Delfine Persoon
__**Match Date:**__: Saturday, 22nd August
__**Match Time:**__: ST: 21:00
__**Channels**__: DAZN USA
Sky Sports Box Office HD
-----
__**Competition**__: Professional Boxing - 12 Rounds Heavyweight Bout
__**Competitors:**__: Dillian Whyte v Alexander Povetkin
__**Match Date:**__: Saturday, 22nd August
__**Match Time:**__: ST: 22:00
__**Channels**__: DAZN USA
Sky Sports Box Office HD
-----
我在想最好搜索“-----”并在此时拆分文本文件的内容,然后将每组匹配数据作为单独的消息发送?
感谢任何可以为此问题提供帮助或解决方案的人。
感谢 dantechguy 和 Thomas Weller 的帮助,我遇到的问题的解决方案如下:
with open(info["textfile"], 'r') as file: # using with to open file means we don't have to close it after finishing
msg = file.read().strip().split ("--------------------") # reads content of textfile and split when "-------------------" is found and creates list of strings.
for item in msg: # for loop to call each item
print (item) # print to double check output
await message.author.send(item) # send each item as a new message in discord.
正如他们的评论中所解释的那样,所有需要做的都是在“--------------------”上拆分,将字符串拆分为字符串列表然后将每个项目作为消息发送。