小编Mar*_*oma的帖子

尝试使用pdfminer.six提取文本时如何解决“ UnicodeDecodeError”?

通过以下方式使用pdfminer(git最新版本)安装时,出现UnicodeEncodeError pip install git+https://github.com/pdfminer/pdfminer.six.git

Traceback (most recent call last):
  File "pdfminer_sample3.py", line 34, in <module>
    print(convert_pdf_to_txt("samples/numbers-test-document.pdf"))
  File "pdfminer_sample3.py", line 27, in convert_pdf_to_txt
    text = retstr.getvalue()
  File "/usr/lib/python2.7/StringIO.py", line 271, in getvalue
    self.buf += ''.join(self.buflist)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

脚本

#!/usr/bin/env python

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from StringIO import StringIO
import codecs …
Run Code Online (Sandbox Code Playgroud)

python pdf python-unicode pdfminer

2
推荐指数
1
解决办法
741
查看次数

使用 Bandit 进行安全分析的 Python 代码

我想获取 python 代码以使用 Bandit 静态分析器进行分析。主要重点是安全性,对于 python 2.7。

任何人都可以帮忙吗?

谢谢。

python security analyzer bandit-python

2
推荐指数
1
解决办法
1896
查看次数

如何在 Python 中使用 textcat?

我想尝试一下TextCat。如果我可以从 Python 运行它对我来说最方便,因为我想看看它在私有数据集上的表现如何。

我给了languagedet,但根据

from languagedet.mixed import MixedDetector
det = MixedDetector()
print(det.available)
Run Code Online (Sandbox Code Playgroud)

远少于 TextCats 网站上声称的 69 种语言可通过 languagedet 获得。

我也试过pylibtextcat,但我得到:

Collecting pylibtextcat
  Using cached pylibtextcat-0.2.tar.bz2
Building wheels for collected packages: pylibtextcat
  Running setup.py bdist_wheel for pylibtextcat ... error
  Complete output from command /usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-1dkslney/pylibtextcat/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpyct9pyfepip-wheel- --python-tag cp35:
  running bdist_wheel
  running build
  running build_ext
  building 'textcat' extension
  creating build
  creating build/temp.linux-x86_64-3.5
  x86_64-linux-gnu-gcc -pthread -DNDEBUG …
Run Code Online (Sandbox Code Playgroud)

python pip

2
推荐指数
1
解决办法
1416
查看次数

是否可以通过 JSON 配置文件创建 AWS lambda 函数?

当我执行时

$ aws lambda list-functions
Run Code Online (Sandbox Code Playgroud)

我得到了所有 lambda 函数的列表:

{
    "Functions": [
        {
            "TracingConfig": {
                "Mode": "PassThrough"
            },
            "Version": "$LATEST",
            "CodeSha256": "aB+/Defg0+abcdefghijklmnopqerstuvwxyzABCDEF=",
            "FunctionName": "foofunction",
            "VpcConfig": {
                "SubnetIds": [],
                "SecurityGroupIds": []
            },
            "MemorySize": 128,
            "RevisionId": "123abc45-1234-1234-1234-123456789012",
            "CodeSize": 61521970,
            "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:foofunction",
            "Environment": {
                "Variables": {
                    "FOO": "BAR",
                    "ESCAPING": "[\"a\", \"b\", \"c\"]",
                    "IS_VALUE": "1"
                }
            },
            "Handler": "lambda_function.lambda_handler",
            "Role": "arn:aws:iam::123456789012:role/service-role/lamdaRole",
            "Timeout": 300,
            "LastModified": "2018-03-01T12:11:10.987+0000",
            "Runtime": "python3.6",
            "Description": ""
        }]
}
Run Code Online (Sandbox Code Playgroud)

是否可以用它来创建一个新的 lambda 函数?我正在寻找类似的东西

$ aws lambda create-function --config myconfig.json
Run Code Online (Sandbox Code Playgroud)

其中myconfig.json包含名称、环境变量、区域、角色、处理程序、运行时和描述。

aws-lambda

2
推荐指数
1
解决办法
1632
查看次数

如何检查加载的 Python 函数是否发生变化?

作为一名数据科学家/机器学习开发人员,我大部分时间(总是?)都有一个load_data函数。执行该函数通常需要超过 5 分钟,因为执行的操作成本很高。当我将最终结果存储load_data在 pickle 文件中并再次读取该文件时,时间通常会缩短到几秒钟。

所以我经常使用的一个解决方案是:

def load_data(serialize_pickle_path, original_filepath):
    invalid_hash = True

    if os.path.exists(serialize_pickle_path):
        content = mpu.io.read(serialize_pickle_path)
        data = content['data']
        invalid_hash = mpu.io.hash(original_filepath) != content['hash']

    if invalid_hash:
        data = load_data_initial()
        filehash = mpu.io.hash(original_filepath)
        mpu.io.write(serialize_pickle_path, {'data': data, 'hash': filehash})

    return data
Run Code Online (Sandbox Code Playgroud)

该解决方案有一个主要缺点:如果发生load_data_initial更改,文件将不会重新加载。

有没有办法检查Python函数的变化?

python

2
推荐指数
1
解决办法
790
查看次数

读取 PDF 文档中的所有书签,并使用书签的页码和标题创建字典

我尝试使用 Python 和 PyPDF2 包来阅读 PDF 文档。目标是读取pdf中的所有书签,并构建一个以书签页码为键、书签标题为值的字典。

除了这篇文章之外,互联网上没有太多关于如何实现它的支持。其中发布的代码不起作用,我不是 python 专家来纠正它。PyPDF2的阅读器对象有一个名为outlines的属性,它为您提供所有书签对象的列表,但书签没有页码,并且遍历该列表并不困难,因为书签之间没有父/子关系。

我在下面分享我的代码来阅读 pdf 文档并检查轮廓属性。

import PyPDF2

reader = PyPDF2.PdfFileReader('SomeDocument.pdf')

print(reader.numPages)
print(reader.outlines[1][1])
Run Code Online (Sandbox Code Playgroud)

pypdf python-3.x

2
推荐指数
2
解决办法
1万
查看次数

如何删除现有的 S3 事件通知?

当我尝试从 S3 删除事件通知时,收到以下消息:

在此输入图像描述

在文本中:

无法验证以下目标配置。无权调用函数 [arn:aws:lambda:eu-west-1:FOOBAR:function:FOOBAR]。(arn:aws:lambda:eu-west-1:FOOBAR:函数:FOOBAR,空)

我的组织中似乎没有人能够删除它 - 甚至管理员也不能。

当我尝试通过 Web 界面在 AWS Lambda 中设置相同的 S3 事件通知作为触发器时,我得到

配置定义不明确。如果同一事件类型的前缀重叠,则两个规则中不能有重叠的后缀。(服务:Amazon S3;状态代码:400;错误代码:InvalidArgument;请求 ID:FOOBAR;S3 扩展请求 ID:FOOBAR/FOOBAR/FOOBAR)

如何删除现有的事件通知?我怎样才能进一步调查这个问题?

amazon-s3 aws-lambda

2
推荐指数
1
解决办法
8651
查看次数

如何在保存时应用黑码格式?

black每当我在 Sublime Text 3 中保存 Python 文件时,我都想申请。我该怎么做?

(如果有快速禁用它的方法可以加分)

sublimetext3 python-black

2
推荐指数
2
解决办法
3107
查看次数

如何在标记化中将多词名称保留在一起?

我想使用 TF-IDF 功能对文档进行分类。一种方法:

from sklearn.feature_extraction.text import TfidfVectorizer
import string
import re
import nltk


def tokenize(document):
    document = document.lower()
    for punct_char in string.punctuation:
        document = document.replace(punct_char, " ")
    document = re.sub('\s+', ' ', document).strip()

    tokens = document.split(" ")

    # Contains more than I want:
    # from spacy.lang.de.stop_words import STOP_WORDS
    stopwords = nltk.corpus.stopwords.words('german')
    tokens = [token for token in tokens if token not in stopwords]
    return tokens

# How I intend to use it
transformer = TfidfVectorizer(tokenizer=tokenize)

example = "Jochen Schweizer ist …
Run Code Online (Sandbox Code Playgroud)

nlp nltk scikit-learn spacy ner

2
推荐指数
1
解决办法
1358
查看次数

未找到 Python Visual Studio 代码模块

已安装 Python 3.7.6 并尝试在 Visual Studio Code 中编写代码

使用: import pikepdf

得到我的错误 ModuleNotFoundError: No module named 'pikepdf'

但是,我运行“pip install pikepdf”并得到:

已满足要求:c:\users\ME\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (1.8.2)中的pikepdf 已满足要求:lxml>=4.0在 c:\users\ME\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages(来自 pikepdf)(4.4.2)

我的 Python 安装路径是: C:\Users\ME\AppData\Local\Programs\Python\Python38

尝试更改“Python:Python 路径”中的某些内容会导致更多错误。

python visual-studio-code pikepdf

2
推荐指数
1
解决办法
6378
查看次数