小编use*_*863的帖子

使用带有大型int的cython时会发生溢出错误

python 3.4,windows 10,cython 0.21.1

我正在使用cython将此函数编译为c

def weakchecksum(data):
   """
   Generates a weak checksum from an iterable set of bytes.
   """
   cdef long a, b, l
   a = b = 0
   l = len(data)
   for i in range(l):
       a += data[i]
       b += (l - i)*data[i]

   return (b << 16) | a, a, b
Run Code Online (Sandbox Code Playgroud)

产生此错误:"OverflowError:Python int太大而无法转换为C long"

我也尝试将它们声明为unsigned longs.我用什么类型来处理非常大的数字?如果它对于交流时间太大有任何解决方法吗?

python cython python-3.x

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

将pickle py2移植到py3字符串变为字节

我有一个用python 2.7创建的pickle文件,我正在尝试移植到python 3.6.该文件保存在py 2.7 viapickle.dumps(self.saved_objects, -1)

并通过loads(data, encoding="bytes")(从rb模式打开的文件)加载到python 3.6 中.如果我尝试打开r模式并传递encoding=latin1loads我得到UnicodeDecode错误.当我打开它作为字节流时,它会加载,但字面上每个字符串现在都是一个字节字符串.每个对象的__dict__密钥都会b"a_variable_name"在调用时生成属性错误,an_object.a_variable_name因为它__getattr__传递一个字符串并且__dict__只包含字节.我觉得我已经尝试了各种参数和pickle协议的组合.除了强行将所有对象的__dict__键转换为字符串之外,我很茫然.有任何想法吗?

**跳到4/28/17更新以获得更好的示例

-------------------------------------------------- -------------------------------------------------- ---------

**更新4/27/17

这最小的例子说明了我的问题:

从py 2.7.13

import pickle

class test(object):
    def __init__(self):
        self.x = u"test ¢" # including a unicode str breaks things

t = test()
dumpstr = pickle.dumps(t)

>>> dumpstr
"ccopy_reg\n_reconstructor\np0\n(c__main__\ntest\np1\nc__builtin__\nobject\np2\nNtp3\nRp4\n(dp5\nS'x'\np6\nVtest \xa2\np7\nsb."
Run Code Online (Sandbox Code Playgroud)

从py 3.6.1

import pickle

class test(object):
    def __init__(self):
        self.x = …
Run Code Online (Sandbox Code Playgroud)

python pickle python-2.7 python-3.x python-3.6

10
推荐指数
1
解决办法
1281
查看次数

从.docx文件中提取标题和表格文本

我正在尝试从docx文件中提取页面和标题数据.该文件是几百页,每个页面都有一个表和一个标题.标题具有需要与每个表配对的相关信息.我能够提取标题和表格数据,我无法将它们可靠地配对在一起.

使用win32com这是我到目前为止所拥有的

# getting the table page number
app = Dispatch("Word.Application")
doc = app.Documents.Open(filename)
table_1_page = doc.Tables(1).Range.Information(3) # 3 == wdActiveEndPageNumber
Run Code Online (Sandbox Code Playgroud)

出现此问题的原因是标题TextFrames并且在多个页面上重复,因此当我调用时:

# getting the header page number
doc.Sections(1).Headers(1).Shapes(1).TextFrame.TextRange.Information(3)
Run Code Online (Sandbox Code Playgroud)

我得到了TextFrame发生的其中一个页面.页面选择似乎有点武断,有时它的第一个是最后一个,但它不可预测.

我花了一点时间阅读了对象模型在这里.最终,捕捉每页显示的所有项目而不重新发明轮子会很好.

根据要求编辑10/25/16,这是一些最低工作代码**

# filename docx_parser.py

import pythoncom


class OpenDoc(object):
    def __init__(self, docx_path):
        import win32com.client as win32
        self.path = docx_path
        self.word = win32.Dispatch("Word.Application")
        self.word.Visible = 0
        self.word.Documents.Open(p)
        self.doc = self.word.ActiveDocument

    def get_table_count(self):
        return self.doc.Tables.Count

    def count_table_rows(self, table):
        return table.Rows.Count

    def count_table_columns(self, table):
        return table.Columns.Count

    def get_headers(self):
        headers = self.doc.Sections(1).Headers(1) …
Run Code Online (Sandbox Code Playgroud)

python win32com python-2.7 python-docx

6
推荐指数
0
解决办法
1389
查看次数

从builtin_function_or_method中检索func_code

是否可以从内置函数或方法中检索 func_code 对象?即来自 time.time()

import time
dir(time.time)
Run Code Online (Sandbox Code Playgroud)

不包含函数对象

也不

dir(time.time.__call__)
Run Code Online (Sandbox Code Playgroud)

它只是返回自身

time.time.__call__.__call__.__call__
Run Code Online (Sandbox Code Playgroud)

..等等。

有任何想法吗?

python python-2.7

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

SQLAlchemy 按即将到来的生日/周年纪念日过滤

环境:python 3.8、flask-sqlalchemy、postgres

class User(db.Model):
    name = db.Column(db.Text)
    birthday = db.Column(db.DateTime)

    @classmethod
    def upcoming_birthdays(cls):
        return (cls.query
                .filter("??")
                .all()
                )
Run Code Online (Sandbox Code Playgroud)

我想创建一个 sqlalchemy 查询来过滤 X 天内即将生日的用户。我考虑过使用该extract函数从生日中提取月份和日期,但这对于月底或年底的日子不起作用。我还考虑过尝试将生日转换为儒略日期以进行比较,但我不知道该怎么做。

例如,如果今天是 2020 年 8 月 30 日,它将返回用户的生日

  • 1995 年 9 月 1 日
  • 2010 年 8 月 31 日 .... 等

感谢您的帮助

python sqlalchemy flask-sqlalchemy

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