javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

generator

coroutine

spring-mvc

reflection

javascript-objects

html5

analytics

node.js

performance

branch-prediction

ωχΠύθωνφορΠυθωνξ

wxPython是否有适用于Python 3的版本?

如果可以,我在哪里可以得到它?

trans by 2020-08-06T08:52:50Z

python-熊猫识别的所有dtypes是什么?

对于大熊猫,有人会知道,除了

(i)pandasdtype(以及object的其他变体,例如float32int8等)

(ii)pandas

(iii)pandasdtype

例如字符串列,始终具有dtypepandas

或者,我想知道,除了上面的列表中的(i),(ii)和(iii)之外,是否还有其他数据类型,使得pandas不是dtype还是object

trans by 2020-08-06T06:02:05Z

无法加载腌制的obj

我遇到的问题是尝试加载腌制对象时。 我已经尝试同时使用pickle.loadpickle.load这是结果:

pickle.load:

TypeError:'str'不支持缓冲区接口

pickle.load:

TypeError:文件必须具有“ read”和“ readline”属性

有人可以告诉我我在此过程中做错了什么吗?

elif str(parser) == 'SwissWithdrawn_Parser':
       # swissprot name changes
       print('Gathering SwissProt update info...')
       cache_hits = 0
       cache_misses = 0
       files = set()

       for f in os.listdir('out/cache/'):
           if os.path.isfile('out/cache/'+f):
               files.add(f)

       for name in sp_lost_names:

           cached = False
           url = 'http://www.uniprot.org/uniprot/?query=mnemonic%3a'+name+ \
               '+active%3ayes&format=tab&columns=entry%20name'
           hashed_url = str(hash(url))

           ################### For Testing Only - use cache ##################
           if hashed_url in files:
               cached = True
               cache_hits += 1
               content = pickle.loads('out/cache/' +hashed_url)  # <-- problematic line
           else:
               cache_misses += 1
               content = urllib.request.urlopen(url)

           # get the contents returned from the HTTPResponse object
           content_list = [x.decode().strip() for x in content.readlines()]
           if not cached:
               with open('out/cache/'+hashed_url, 'wb') as fp:
                   pickle.dump(content_list, fp)
           ####################################################################

           # no replacement
           if len(content_list) is 0:
               change_log['swiss-names'] = 
                  { name : 'withdrawn' }
           # get the new name
           else:
               new_name = content_list[1]
               change_log['swiss-names'] =
                  { name : new_name }
trans by 2020-08-03T18:15:12Z

字符串-python中的str.isdigit,isnumeric和isdecimal有什么区别?

当我运行这些方法时

s.isdigit()
s.isnumeric()
s.isdecimal()

对于s的每个值(当然是字符串),我总是得到输出,或者全部为True,或者全部为False。两者之间有什么区别? 您能否提供一个给出两个正确和一个错误(反之亦然)的示例?

trans by 2020-08-02T07:04:11Z

python-集合中所有计数的总和

sum(Counter([1,2,3,4,5,1,2,1,6]))对象中建立所有计数总和的最佳方法是什么?

我试过了:

sum(Counter([1,2,3,4,5,1,2,1,6]))

但这是21而不是9?

trans by 2020-07-31T00:48:26Z

包中的python-`del`具有某种内存

del似乎有些记忆使我感到困惑。 请参阅以下内容:

In [1]: import math

In [2]: math.cos(0)
Out[2]: 1.0

In [3]: del math.cos

In [4]: math.cos(0)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-9cdcc157d079> in <module>()
----> 1 math.cos(0)

AttributeError: module 'math' has no attribute 'cos'

精细。 让我们看看如果删除整个数学包会发生什么:

In [5]: del math

In [6]: math.cos(0)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-9cdcc157d079> in <module>()
----> 1 math.cos(0)

NameError: name 'math' is not defined

因此,现在数学本身已经消失了,正如预期的那样。

现在,让我们再次导入数学:

In [7]: import math

In [8]: math.cos(0)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-8-9cdcc157d079> in <module>()
----> 1 math.cos(0)

AttributeError: module 'math' has no attribute 'cos'

因此,以某种方式,交互式python会记住,即使我们删除了整个数学包并再次将其导入后,math.cos还是被专门删除了。

python在哪里保存此知识? 我们可以访问吗? 我们可以改变吗?

trans by 2020-07-29T21:54:02Z

通过zlib支持从源代码构建Python

在Ubuntu 12.04上从源代码构建Python 3.2.3时,zlib模块不可用。

我从python.org下载了官方的源代码发行版,并尝试使用以下命令来构建和安装它。

tar xfa Python3.2.3.tar.bz2
cd Python-3.2.3
./configure --prefix=/opt/python3.2
make
sudo make install

make命令输出包括以下内容。

Python build finished, but the necessary bits to build these modules were not found:
_curses            _curses_panel      _dbm            
_gdbm              _sqlite3           _ssl            
_tkinter           bz2                readline        
zlib                                            

运行--with-zlib并启动解释器后,无法导入./configure模块。

我确认在我的系统上安装了--with-zlib软件包。

我还发现了类似的问题,建议将--with-zlib标志添加到./configure命令中。 但是,这将返回一个错误,它是无法识别的选项,并且无效。

trans by 2020-07-29T06:17:54Z

Python中的惰性评估

什么是Python中的惰性评估?

一个网站说:

在Python 3.x中range()函数返回一个特殊的范围对象,该对象按需计算列表元素(延迟或延迟评估):

>>> r = range(10)
>>> print(r)
range(0, 10)
>>> print(r[3])
3

这是什么意思?

trans by 2020-07-29T00:50:57Z

在python proj中使用相对路径读取文件

假设我有一个Python项目,其结构如下:

project
    /data
        test.csv
    /package
        __init__.py
        module.py
    main.py

module.py:

from .module import test

module.py:

import csv

with open("..data/test.csv") as f:
    test = [line for line in csv.reader(f)]

module.py:

import package

print(package.test)

当我运行module.py时,出现以下错误:

 C:\Users\Patrick\Desktop\project>python main.py
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import package
  File "C:\Users\Patrick\Desktop\project\package\__init__.py", line 1, in <module>
    from .module import test
  File "C:\Users\Patrick\Desktop\project\package\module.py", line 3, in <module>
    with open("../data/test.csv") as f:
FileNotFoundError: [Errno 2] No such file or directory: '../data/test.csv'

但是,如果我从package目录运行module.py,则不会出现任何错误。 如此看来,在open(...)中使用的相对路径仅相对于从其运行原始文件的位置(即__name__ == "__main__")? 我不想使用绝对路径。 有什么方法可以解决这个问题?

trans by 2020-07-28T12:23:25Z

unicode-如何制作python 3 print()utf8

如何在utf-8中将python 3(3.1)printRAW(chr(252))转换为stdout,或者如何输出原始字节?

Test.py

TestText = "Test - āĀēĒčČ..šŠūŪžŽ" # this is UTF-8
TestText2 = b"Test2 - \xc4\x81\xc4\x80\xc4\x93\xc4\x92\xc4\x8d\xc4\x8c..\xc5\xa1\xc5\xa0\xc5\xab\xc5\xaa\xc5\xbe\xc5\xbd" # just bytes
print(sys.getdefaultencoding())
print(sys.stdout.encoding)
print(TestText)
print(TestText.encode("utf8"))
print(TestText.encode("cp1252","replace"))
print(TestText2)

输出(在CP1257中,我将char替换为字节值printRAW(chr(252))):

utf-8
cp1257
Test - [xE2][xC2][xE7][C7][xE8][xC8]..[xF0][xD0][xFB][xDB][xFE][xDE]  
b'Test - \xc4\x81\xc4\x80\xc4\x93\xc4\x92\xc4\x8d\xc4\x8c..\xc5\xa1\xc5\xa0\xc5\xab\xc5\xaa\xc5\xbe\xc5\xbd'
b'Test - ??????..\x9a\x8a??\x9e\x8e'
b'Test2 - \xc4\x81\xc4\x80\xc4\x93\xc4\x92\xc4\x8d\xc4\x8c..\xc5\xa1\xc5\xa0\xc5\xab\xc5\xaa\xc5\xbe\xc5\xbd'

printRAW(chr(252))太聪明了...:D没有必要在ü上使用编码文本(因为它始终只显示字节表示而不是真实字节),根本不可能输出字节,因为无论如何都要进行打印并始终以[xC3][xBC]进行编码。

例如:printRAW(chr(252))引发错误:

printRAW(chr(252))

顺便说一下,尽管打印输出是相同的,printRAW(chr(252))返回ü


Python 3如何确定printRAW(chr(252)),如何更改它?

我做了一个printRAW(chr(252))函数,该函数可以正常工作(实际上它会将输出编码为UTF-8,所以实际上它不是原始的...):

 def printRAW(*Text):
     RAWOut = open(1, 'w', encoding='utf8', closefd=False)
     print(*Text, file=RAWOut)
     RAWOut.flush()
     RAWOut.close()

 printRAW("Cool", TestText)

输出(现在以UTF-8打印):

printRAW(chr(252))

printRAW(chr(252))也可以很好地打印ü(在UTF-8中,[xC3][xBC])并且没有错误:)

现在,我正在寻找可能更好的解决方案...

trans by 2020-07-28T08:22:34Z

明确记录的使用Python win32com ou阅读电子邮件功能

我试图通过win32com更好地了解Outlook交互。 我一直无法找到清晰的文档,使我无法利用win32com来有效地阅读电子邮件,从我目前的调查来看,用户的感觉似乎相当正常。 因此,以下信息和要求如下:

有人可以吗?

1.给出指向清晰文档位置的链接(如果存在)

2.在下面展开

以下是我在阅读其他人的代码后发现的当前功能。

采取以下代码:

import win32com

outlook=win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox=outlook.GetDefaultFolder(6)

messages=inbox.Items

for message in messages:
    attachments = message.attachments

    for attachment in attachments:
        pass

上面使用的对象具有我所知道的以下功能:

收件箱-

.Folders
.Items

讯息-

.GetFirst()
.GetLast()
.GetNext()
.GetPrevious()
.Attachments

信息 -

.Subject
.Body
.To
.Recipients
.Sender
.Sender.Address

附件-

.item()
.Count

附件 -

.filename

如果您知道更多功能,请在答案中添加。

trans by 2020-07-27T21:05:25Z

python-“ for”循环和map之间的区别

从标题看,是有区别的。 现在应用于我的场景:让我们考虑一个类D.attached = [1, 2, 3, 4]

class Dummy:
    def __init__(self):
        self.attached = []

    def attach_item(self, item):
        self.attached.append(item)

如果我使用这个:

D = Dummy()
items = [1, 2, 3, 4]
for item in items:
    D.attach_item(item)

我确实得到D.attached = [1, 2, 3, 4]。但是,如果将函数2985212222881981924映射到items,则D.attached仍为空。

map(D.attach_item, items)

到底在做什么

trans by 2020-07-27T17:17:12Z

如何在Python 3中打印异常?

现在,我在except Exception:子句中捕获到异常,然后执行print(exception)。由于该结果始终会打印<class 'Exception'>,因此结果未提供任何信息。我知道这在python 2中可以使用,但是我如何在python3中使用呢?

trans by 2020-07-26T15:12:42Z

python-使用不同的顺序按多个键排序

可能重复:
如何为降序值编写Python排序键函数

在Python 3中,使用多个键按字典顺序对对象列表进行排序非常容易。 例如:

points

points参数使您可以指定是升序还是降序。 但是,如果要按多个键进行排序,但是要对第一个键使用降序排序,而对第二个键使用升序排序,该怎么办?

例如,假设我们有一个具有两个属性的对象,即pointsname,其中pointsint,而namestr。我们要按points的降序对这些对象的列表进行排序(这样,编号最大的对象 点数排在最前面),但是对于数量等于points的对象,我们希望按照name的字母顺序(升序)对它们进行排序。

如何做到这一点?

trans by 2020-07-26T13:17:46Z

Python 3字节格式

在Python 3中,您可以将字符串格式化为:

"{0}, {1}, {2}".format(1, 2, 3)

但是如何格式化字节?

b"{0}, {1}, {2}".format(1, 2, 3)

筹集了format

如果没有用于字节的format方法,如何对字节进行格式化或“重写”?

trans by 2020-07-26T05:46:46Z

python-在多处理模块中使用所有内核的100%

我有两段代码用于学习Python 3.1中的多处理。 我的目标是使用所有可用处理器中的100%。但是,此处的代码段在所有处理器上仅达到30%-50%。

无论如何,要“强制” python使用全部100%?操作系统(Windows 7、64位)是否限制了Python对处理器的访问?在下面的代码段运行时,我打开任务管理器并观察处理器的峰值,但从未达到并维持100%。除此之外,我还可以看到在此过程中创建和销毁了多个python.exe进程。 这些过程与处理器有何关系? 例如,如果我生成4个进程,则每个进程都没有使用它自己的核心。 相反,流程使用什么? 他们共享所有核心吗? 如果是这样,是不是操作系统迫使进程共享内核?

程式码片段1

import multiprocessing

def worker():
    #worker function
    print ('Worker')
    x = 0
    while x < 1000:
        print(x)
        x += 1
    return

if __name__ == '__main__':
    jobs = []
    for i in range(50):
        p = multiprocessing.Process(target=worker)
        jobs.append(p)
        p.start()

代码段2

from multiprocessing import Process, Lock

def f(l, i):
    l.acquire()
    print('worker ', i)
    x = 0
    while x < 1000:
        print(x)
        x += 1
    l.release()

if __name__ == '__main__': 
    lock = Lock()
    for num in range(50):
        Process(target=f, args=(lock, num)).start()
trans by 2020-07-25T21:49:24Z

datetime-如何创建基本时间戳或日期? (Python 3.4)

作为初学者,创建时间戳或格式化日期最终比我预期的要困难得多。 有哪些基本示例可供参考?

trans by 2020-07-24T19:59:18Z

在Python 3中将打印输出定向到.txt文件

有没有一种方法可以将所有打印输出保存到python中的txt文件中? 可以说我的代码中包含这两行,我想将打印输出保存到名为output.txt的文件中。

print ("Hello stackoverflow!")
print ("I have a question.")

我希望包含output.txt文件

Hello stackoverflow!
I have a question.
trans by 2020-07-22T06:55:25Z

嵌套的f字符串

感谢David Beazley的推文,最近我发现新的Python 3.6 f字符串也可以嵌套:

>>> price = 478.23
>>> f"{f'${price:0.2f}':*>20s}"
'*************$478.23'

要么:

>>> x = 42
>>> f'''-{f"""*{f"+{f'.{x}.'}+"}*"""}-'''
'-*+.42.+*-'

让我感到惊讶的是,这种可能性是可行的,但是我却不知道这种实用性如何,何时嵌套f字符串有用? 这可以涵盖哪些用例?

注意:PEP本身没有提到嵌套f字符串,但是有一个特定的测试用例。

trans by 2020-07-21T16:17:26Z

Python多重处理:了解“块大小”背后的逻辑

哪些因素决定了像map()这样的方法的最佳chunksize参数? chunksize方法似乎对其默认的块大小使用了任意启发式(如下所述); 是什么促使了这一选择?是否有基于某些特定情况/设置的更周到的方法?

示例-说我是:

  • chunksize传递给map(),其中包含约1500万个元素;
  • 在具有24核的计算机上工作,并使用chunksize中的默认chunksize

我天真的想法是给24名工人中的每人一个相等大小的块,即chunksize或625,000。 大块应该在充分利用所有工人的同时减少营业额/间接费用。 但这似乎没有为每个工人提供大批量生产的潜在弊端。 这是一张不完整的图片,我想念什么?


我的问题的一部分来自if chunksize的默认逻辑:map()chunksizechunksize都调用chunksize,看起来像这样:

def _map_async(self, func, iterable, mapper, chunksize=None, callback=None,
               error_callback=None):
    # ... (materialize `iterable` to list if it's an iterator)
    if chunksize is None:
        chunksize, extra = divmod(len(iterable), len(self._pool) * 4)  # ????
        if extra:
            chunksize += 1
    if len(iterable) == 0:
        chunksize = 0

chunksize背后的逻辑是什么? 这意味着块大小将更接近map()。将chunksize乘以4的目的是什么?

这使得生成的块大小比我上面的“幼稚逻辑”小4倍,其中包括将可迭代的长度除以chunksize中的工人数量。

最后,还有chunksize上的Python文档中的以下代码片段,这进一步激发了我的好奇心:

chunksize参数与map()使用的参数相同 方法。 对于非常长的可迭代项,使用chunksize的较大值可以 使工作完成比使用默认值1快得多。


相关的回答很有帮助,但有点太高级了:Python多重处理:为什么大的块大小比较慢?

trans by 2020-07-21T14:24:28Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 下一页 共20页