Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python统计PDF文件每页上的每封电子邮件_Python_Python 3.x_Pdf - Fatal编程技术网

Python统计PDF文件每页上的每封电子邮件

Python统计PDF文件每页上的每封电子邮件,python,python-3.x,pdf,Python,Python 3.x,Pdf,我正试图计算这个pdf文件中有@twitter或@facebook的每一个字符串,有1537页。我初始化了一个计数器,每当页面找到@twitter或@facebook时,计数器都会关闭,但计数器只是计算页面的数量,而不是包含facebook或twitter的电子邮件的数量。我正在使用Python3并导入pdftotext来读取文件。 这是密码 import pdftotext count = 0 # 1 read the pdf with open('Users.pdf', 'rb') as f

我正试图计算这个pdf文件中有@twitter或@facebook的每一个字符串,有1537页。我初始化了一个计数器,每当页面找到@twitter或@facebook时,计数器都会关闭,但计数器只是计算页面的数量,而不是包含facebook或twitter的电子邮件的数量。我正在使用Python3并导入pdftotext来读取文件。 这是密码

import pdftotext
count = 0
# 1 read the pdf
with open('Users.pdf', 'rb') as f:
    pdf = pdftotext.PDF(f)

# loop thru pages
for page in pdf:
    if '@facebook' in page or '@twitter' in page:
        count += 1


print(count)

输出:

1537
这是文件的页数

,建议您使用正则表达式匹配来实现所需操作

import pdftotext
import re

count = 0
# 1 read the pdf
with open('Users.pdf', 'rb') as f:
    pdf = pdftotext.PDF(f)

# regex pattern
pattern = '@facebook|@twitter'

# loop thru pages
for page in pdf:
    count += len(re.findall(pattern, page))

print(count)
要检查并尝试您的正则表达式模式,我建议。

如您所建议的,应该使用正则表达式匹配来实现您想要做的事情

import pdftotext
import re

count = 0
# 1 read the pdf
with open('Users.pdf', 'rb') as f:
    pdf = pdftotext.PDF(f)

# regex pattern
pattern = '@facebook|@twitter'

# loop thru pages
for page in pdf:
    count += len(re.findall(pattern, page))

print(count)

要检查并尝试您的正则表达式模式,我建议。

嘿,伙计,您确定
页面
内循环保存了PDF页面的内容吗?在尝试计算要查找的字符串之前,可能需要调用另一个方法。您的代码正按照您的指示执行。对于每个页面,无论您要查找的字符串出现多少次,您都会将计数增加一次。似乎正则表达式匹配会更好;在这里查看:嘿,伙计,你确定反循环中的
页面
保存了PDF页面的内容吗?在尝试计算要查找的字符串之前,可能需要调用另一个方法。您的代码正按照您的指示执行。对于每个页面,无论您要查找的字符串出现多少次,您都会将计数增加一次。似乎正则表达式匹配会更好;在这里查看: