小编Equ*_*Dev的帖子

如何给exec代码有意义的位置来显示异常?

下面给出的代码将exec在没有编译错误的情况下通过,但会在"error"语句中导致运行时错误:

globs = {}

exec('''
def main():
    print('Hello Python')
    error  # Makes run-time error
''', globs)

globs['main']()
Run Code Online (Sandbox Code Playgroud)

错误消息是:

    Traceback (most recent call last):

      File "C:\work\sandbox.py", line 11, in 
        globs['main']()
      File "<string>", line 4, in main
    NameError: name 'error' is not defined

仅位置信息File "<string>", line 4, in main不是非常有用,例如在尝试定位可以来自文件的代码的原点时.

请注意,以上是显示问题的简化示例.在实际程序中,代码定义了在主程序中的不同位置执行的若干功能.

有没有办法从exec"<string>"以外的其他位置提供代码,所以如果exec代码中发生异常,则会显示其他位置?

python

5
推荐指数
1
解决办法
396
查看次数

如何计算特定字体和大小的字符串长度(以像素为单位)?

如果字体,例如"Times New Roman"和大小,例如12 pt,是已知的,那么如何以像素计算字符串的长度,例如"Hello world",可能只是大约?

我需要这个来对Windows应用程序中显示的文本进行一些手动右对齐,所以我需要调整数字空格以获得对齐.

python windows fonts python-3.x

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

如何在numpy中进行卷积矩阵运算?

有没有办法使用numpy 进行卷积矩阵运算?

numpy.convolve只运行在一维数组,所以这不是解决办法.

我宁愿避免使用scipy,因为在Windows上安装似乎更加困难.

python numpy

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

如何循环浮动0.5到1.0,同时仍然四舍五入到0.45到0.0,正如通常的学校四舍五入?

出现默认Python round(1 / 2)给出0.

如何循环浮动0.5到1.0,同时仍然四舍五入到0.45到0.0,正如通常的学校四舍五入?

注意:很抱歉删除并再次发布此内容,但它被错误地标记为另一个问题的副本.

python floating-point rounding python-3.x

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

如何复制numpy数组中的行或列?

拥有这个numpy数组:

[[0 1 2]
 [3 4 5]
 [6 7 8]] 
Run Code Online (Sandbox Code Playgroud)

我如何复制例如第1行,所以我得到以下内容?:

[[0 1 2]
 [3 4 5]
 [3 4 5]
 [6 7 8]] 
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x

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

如何使用 Python 从 PDF 文件中读取简单文本?

需要解析 PDF 文件以仅提取文本的第一行,并寻找不同的 Python 包来完成这项工作,但没有任何运气。

尝试过:

  • PDFminerPDFminer.sixPDFminer3k,这对于简单的工作来说似乎过于复杂,我找不到一个简单的工作示例

  • slate,安装时出错,虽然使用线程修复,但尝试时出错;也许使用了错误的 PDFminer,但无法确定使用哪个

  • PyPDF2PyPDF3但这些给出了垃圾,如here所述

  • tika,它给出了不同的终端错误消息并且非常慢

  • pdftotext安装失败

  • pdf2text在“导入 pdf2text”时失败,当更改为“pdftotext”时,即使pip list显示已安装“Extractor”也无法导入“ImportError: cannot import name 'Extractor'”

通常我发现安装的 Python 包工作得非常好,但是将 PDF 解析为文本似乎是一个丛林,无数工具也表明了这一点。

关于如何在 Python 中将 PDF 文件简单解析为文本的任何建议?

添加了 PyPDF2 示例

PyPDF2 的一个例子是:

import PyPDF2
pdfFileObj = open('file.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
pageObj_0 = pdfReader.getPage(0)
print(pageObj_0.extractText())
Run Code Online (Sandbox Code Playgroud)

它返回垃圾为:

$%$%&%&$'('~!)"*+#

python pdf text python-3.x

4
推荐指数
1
解决办法
3066
查看次数

如何获取 magic __getattr__ 中的实例属性?

在一个类中,我想将调用映射inst.addr到通过调用创建的值inst.addr_fun(),因此创建了以下代码:

class Common:
    ...
    def __getattr__(self, name):
        if hasattr(self, '{}_fun'.format(name)):
            return getattr(self, '{}_fun'.format(name))()
        else:  
            raise AttributeError('attribute unknown in instance')
    def addr_fun(self):
        return 42
Run Code Online (Sandbox Code Playgroud)

然而,它会导致递归,因为getattr调用__getattr__,所以我无法访问该addr_fun函数。

如何访问实例内的命名属性?

python getattr python-3.x

3
推荐指数
1
解决办法
1618
查看次数

如果调用的命令执行“exit”,如何避免 Windows cmd 终端退出?

在 Windows cmd 终端中,通过 cmd,我调用命令脚本 (.cmd),但其中一些脚本执行时exit [code]没有/B,因此我的 Windows 终端被终止。

exit如果调用的命令在没有 的情况下执行,如何避免退出 Windows cmd 终端/B

cmd batch-file exit-code exit

3
推荐指数
1
解决办法
5187
查看次数

如何获取type.SimpleNamespace类型的所有用户定义属性?

进行时:

import types
ns = types.SimpleNamespace(alfa = 1, bravo = 2, charlie = 3)
print(dir(ns))
Run Code Online (Sandbox Code Playgroud)

结果列表还包含所有类方法,因此:

['__class__', '__delattr__', ..., 'alfa', 'bravo', 'charlie']
Run Code Online (Sandbox Code Playgroud)

如何仅获得用户定义的属性的列表,从而在['alfa', 'bravo', 'charlie']不对属性名称进行荒谬的文本匹配的情况下更好?

python python-3.x

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

如何在类中迭代`dict`就好像只是提到`dict`一样?

在一个定义的对象中,一些值保存在a中dict,我希望迭代内容,dict就像在引用plain时一样dict,因此直接访问使用[],并使用例如循环.items().代码结构是:

class Klass:

    def __init__(self, values):
        self.values = values
        self.more = None

    def __getitem__(self, name):
        return self.values[name]

    def __iter__(self):
        pass  # TBD[How to make this ?]

d = {'alfa': 1, 'bravo': 2, 'charlie': 3}

k = Klass(d)

for key in k:
    print(key)  # Expected to print keys from self.values 

for (key, value) in k.items():
    print(key, value)  # Expected to print key and value from self.values 

for key in k.keys():
    print(key) …
Run Code Online (Sandbox Code Playgroud)

python dictionary iterator python-3.x

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