下面给出的代码将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代码中发生异常,则会显示其他位置?
如果字体,例如"Times New Roman"和大小,例如12 pt,是已知的,那么如何以像素计算字符串的长度,例如"Hello world",可能只是大约?
我需要这个来对Windows应用程序中显示的文本进行一些手动右对齐,所以我需要调整数字空格以获得对齐.
出现默认Python round(1 / 2)
给出0.
如何循环浮动0.5到1.0,同时仍然四舍五入到0.45到0.0,正如通常的学校四舍五入?
注意:很抱歉删除并再次发布此内容,但它被错误地标记为另一个问题的副本.
拥有这个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) 需要解析 PDF 文件以仅提取文本的第一行,并寻找不同的 Python 包来完成这项工作,但没有任何运气。
尝试过:
PDFminer,PDFminer.six和PDFminer3k,这对于简单的工作来说似乎过于复杂,我找不到一个简单的工作示例
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)
它返回垃圾为:
$%$%&%&$'('~!)"*+#
在一个类中,我想将调用映射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
函数。
如何访问实例内的命名属性?
在 Windows cmd 终端中,通过 cmd,我调用命令脚本 (.cmd),但其中一些脚本执行时exit [code]
没有/B
,因此我的 Windows 终端被终止。
exit
如果调用的命令在没有 的情况下执行,如何避免退出 Windows cmd 终端/B
?
进行时:
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']
不对属性名称进行荒谬的文本匹配的情况下更好?
在一个定义的对象中,一些值保存在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 ×9
python-3.x ×7
numpy ×2
batch-file ×1
cmd ×1
dictionary ×1
exit ×1
exit-code ×1
fonts ×1
getattr ×1
iterator ×1
pdf ×1
rounding ×1
text ×1
windows ×1