Python Reddit 提交文本切片
Python Reddit Submission Text Slicing
我正在使用 Reddit 的 PRAW 收集提交内容。我希望能够将提交的文本切片并将其保存到一个变量中,以便与硬编码数字进行比较,以删除标题中数字大于它的每个提交 post。
import praw
reddit = praw.Reddit(client_id = 'REDACTED',
client_secret = 'REDACTED',
username = 'REDACTED', password = 'REDACTED',
user_agent = 'REDACTED')
subreddit = reddit.subreddit('NumbersReddit')
new_numpost = subreddit.new(limit=10)
for submission in new_numpost :
if not submission.stickied:
print(50*'-')
print('User: {} '.format(submission.author))
print('Title: {}'.format(submission.title))
print('URL: {}'.format(submission.url))
使用上面的代码作为起点:删除粘附的提交后,我想获得 post 标题的前两个字符(它们始终是 2 个数字,即 24 ) 并将其与硬编码数字(例如 18)进行比较,因此它会删除所有以大于 18 的数字开头的 post。
输出结果如下:
用户:Example1
标题:18 年,我以前没有意识到这一点
URL: https://www.reddit.com/r/NumbersReddit/comments/example1
用户:Example2
标题:我尝试了 18 次,但还是值得的
URL: https://www.reddit.com/r/NumbersReddit/comments/example2
用户:Example3
标题:18 人说节食对他们来说就足够了
URL: https://www.reddit.com/r/NumbersReddit/comments/example3
修复
改变了这个:
for submission in new_numpost :
if not submission.stickied:
print(50*'-')
print('User: {} '.format(submission.author))
print('Title: {}'.format(submission.title))
print('URL: {}'.format(submission.url))
为此:
for submission in new_numpost :
if not submission.stickied:
title_number = int(submission.title[:2])
if title_number < 25:
print(50*'-')
print('User: {} '.format(submission.author))
print('Title: {}'.format(submission.title))
print('URL: {}'.format(submission.url))
要获取任何字符串的前 n 个字符,请执行以下操作:
(假设您的标题是“18:你好!”)
my_title = '18: Hello!'
print(my_title[:2])
结果:
18
因此,您需要在标题行中执行以下操作:
print('Title: {}'.format(submission.title[:2]))
假设它是一个字符串。
一旦你有了它,你就可以像这样将它转换成一个整数(假设我们还没有对它进行切片):
title = int(title[:2])
然后你可以用整数做任何你想做的比较。
已更新以进一步阐明答案:
你的 full 标题似乎来自 submission.title
,所以你可以做的是基于它创建两个变量:
一个名为 title_number
的变量和另一个名为 title
的变量,其中 title_number = int(submission.title[:2])
和 title = submission.title
,您所做的就是比较 title_number
,如果它大于您得到的任何数字在 for 循环中打印 title
否则忽略它。
例如(假设 submission.title 是“18 岁,我以前没有意识到这一点”)
check_int = 17
for submission in new_numpost:
title = submission.title
title_number = int(submission.title[:2])
if title_number > check_int:
print(title)
应该导致:
18 Years and I haven't realised this before
打印出来
我正在使用 Reddit 的 PRAW 收集提交内容。我希望能够将提交的文本切片并将其保存到一个变量中,以便与硬编码数字进行比较,以删除标题中数字大于它的每个提交 post。
import praw
reddit = praw.Reddit(client_id = 'REDACTED',
client_secret = 'REDACTED',
username = 'REDACTED', password = 'REDACTED',
user_agent = 'REDACTED')
subreddit = reddit.subreddit('NumbersReddit')
new_numpost = subreddit.new(limit=10)
for submission in new_numpost :
if not submission.stickied:
print(50*'-')
print('User: {} '.format(submission.author))
print('Title: {}'.format(submission.title))
print('URL: {}'.format(submission.url))
使用上面的代码作为起点:删除粘附的提交后,我想获得 post 标题的前两个字符(它们始终是 2 个数字,即 24 ) 并将其与硬编码数字(例如 18)进行比较,因此它会删除所有以大于 18 的数字开头的 post。
输出结果如下:
用户:Example1
标题:18 年,我以前没有意识到这一点
URL: https://www.reddit.com/r/NumbersReddit/comments/example1
用户:Example2
标题:我尝试了 18 次,但还是值得的
URL: https://www.reddit.com/r/NumbersReddit/comments/example2
用户:Example3
标题:18 人说节食对他们来说就足够了
URL: https://www.reddit.com/r/NumbersReddit/comments/example3
修复
改变了这个:
for submission in new_numpost :
if not submission.stickied:
print(50*'-')
print('User: {} '.format(submission.author))
print('Title: {}'.format(submission.title))
print('URL: {}'.format(submission.url))
为此:
for submission in new_numpost :
if not submission.stickied:
title_number = int(submission.title[:2])
if title_number < 25:
print(50*'-')
print('User: {} '.format(submission.author))
print('Title: {}'.format(submission.title))
print('URL: {}'.format(submission.url))
要获取任何字符串的前 n 个字符,请执行以下操作:
(假设您的标题是“18:你好!”)
my_title = '18: Hello!'
print(my_title[:2])
结果:
18
因此,您需要在标题行中执行以下操作:
print('Title: {}'.format(submission.title[:2]))
假设它是一个字符串。
一旦你有了它,你就可以像这样将它转换成一个整数(假设我们还没有对它进行切片):
title = int(title[:2])
然后你可以用整数做任何你想做的比较。
已更新以进一步阐明答案:
你的 full 标题似乎来自 submission.title
,所以你可以做的是基于它创建两个变量:
一个名为 title_number
的变量和另一个名为 title
的变量,其中 title_number = int(submission.title[:2])
和 title = submission.title
,您所做的就是比较 title_number
,如果它大于您得到的任何数字在 for 循环中打印 title
否则忽略它。
例如(假设 submission.title 是“18 岁,我以前没有意识到这一点”)
check_int = 17
for submission in new_numpost:
title = submission.title
title_number = int(submission.title[:2])
if title_number > check_int:
print(title)
应该导致:
18 Years and I haven't realised this before
打印出来