小编jfs*_*jfs的帖子

简单的DER Cert在python中解析

哪个是用python解析带有X509证书的二进制文件以DER格式提取公钥的最佳方法.

python ssl-certificate public-key

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

关于无向图复杂性的DFS

假设我有一个带有V节点和E边的无向图.如果我用相邻列表表示图,如果我有一个x和y之间的边的表示,我还必须表示y和x之间的边.邻接清单.

我知道有向图的DFS具有V + E复杂性.对于无向图,它没有v + 2*e复杂度,因为你访问每个边2次?抱歉,如果这是一个noobish问题..我真的想了解这个想.谢谢,

graph time-complexity depth-first-search

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

使用python smtplib发送邮件错误

我正在尝试使用 python 3.2 SMTPlib.sendmail() 函数发送消息,在对 SMTP 库进行一些修改后(即注释掉抑制错误消息的 rset() 函数)我设法检索到以下错误消息从服务器:

SendMail 失败(554,b'交易失败:由于可能的滥用而无法发送邮件;请访问http://postmaster.yahoo.com/abuse_smtp.html了解更多信息')

雅虎邮件 SMTP 服务器认为我在发送垃圾邮件,该 URL 确实链接到任何有用的东西。我认为这与标题不足有关,我似乎无法找到关于什么构成合规标题的明确答案,而且我已经阅读了 Gmail 的类似问题。此帖子已替换为模拟电子邮件。

任何帮助,将不胜感激

我的完整代码如下:

    self.message =  email.message_from_string('''To: <ksmith@yahoo.co.nz>
    From: <rwilson@yahoo.co.nz>
    Reply-To: <rwilson@yahoo.co.nz>
    Subject: Test send mail \n\n Hello''')
    fromAddress = 'rwilson@yahoo.co.nz'
    toAddress = 'ksmith@yahoo.co.nz'
    try:
        self.smtp = SMTP()
        self.smtp.connect('smtp.mail.yahoo.com')
    except Exception:
        print('Connection Failed')
        print(traceback.format_exc())
    try:
        self.smtp.login('rwilson','tree22')
    except Exception:
        print('Login Failed!')
        print(traceback.format_exc())
    try:
        self.smtp.sendmail(fromAddress,toAddress ,self.message.as_string())
        print("Message sucessfully sent!")
        self.smtp.close()
    except Exception as e:
        print('SendMail Failed')
        print(e)
Run Code Online (Sandbox Code Playgroud)

python email smtp yahoo-mail python-3.2

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

更快地计算numpy数组python中字符串出现次数的方法

我有一个numpy元组:

trainY = np.array([('php', 'image-processing', 'file-upload', 'upload', 'mime-types'),
                   ('firefox',), ('r', 'matlab', 'machine-learning'),
                   ('c#', 'url', 'encoding'), ('php', 'api', 'file-get-contents'),
                   ('proxy', 'active-directory', 'jmeter'), ('core-plot',),
                   ('c#', 'asp.net', 'windows-phone-7'),
                   ('.net', 'javascript', 'code-generation'),
                   ('sql', 'variables', 'parameters', 'procedure', 'calls')], dtype=object)
Run Code Online (Sandbox Code Playgroud)

我给出了这个np.array子集的索引列表:

x = [0, 4]
Run Code Online (Sandbox Code Playgroud)

和一个字符串:

label = 'php'
Run Code Online (Sandbox Code Playgroud)

我想计算标签'php'出现在np.array的这个子集中的次数.在这种情况下,答案是2.

笔记:

1)标签只会出现在元组中的最多ONCE

2)元组的长度可以是1到5.

3)列表的长度x通常为7-50.

4)长度trainY约为0.8密耳

我目前的代码是:

sum([1 for n in x if label in trainY[n]])
Run Code Online (Sandbox Code Playgroud)

这是我的程序的性能瓶颈,我正在寻找一种方法来使它更快.我认为,我们可以在跳过循环x,只是做了矢量化仰视trainY喜欢trainY[x],但我无法得到的东西的工作.

谢谢.

python arrays string performance numpy

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

在python Popen的卷曲括号

运行子进程将无法正确处理花括号

# Python 2.7.4

import subprocess
subprocess.Popen('ls src/*.cpp',shell=True): 
src/tonemap.cpp src/pch.cpp

subprocess.Popen('ls src/{t,p}*.cpp', shell=True)
ls: cannot access src/{p,t}*.cpp: No such file or directory
Run Code Online (Sandbox Code Playgroud)

相同的程序将在python 2.7.2的不同机器上运行.两个系统都使用bash shell.

你是理由,我该如何解决?

编辑:

直接从命令行调用命令会返回正确的结果:

ls src/{t,p}*.cpp
src/tonamep.cpp src/pch.cpp
Run Code Online (Sandbox Code Playgroud)

python subprocess popen python-2.7

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

Popen具有冲突的可执行文件/路径

我想使用Popen从我的Python脚本中调用ImageMagick中的"convert"实用程序,如下所示:

Popen(["convert", input_path, "-flop", output_file_path])
Run Code Online (Sandbox Code Playgroud)

(上面的例子只是水平反转图像)

问题是,当我在Windows中运行脚本时,它错误地调用convert.exeWindows附带的实用程序将FAT分区转换为NTFS!(位于\ Windows\system32)

现在,如果我在system32以外的任何目录中随机打开命令提示符,并键入"convert",它会正确运行ImageMagick可执行文件.所以,这意味着Popen会自动查看system32.如何让它不在system32中查看,并运行正确的可执行文件?

python windows subprocess popen

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

Python拉皮条/猴子补丁

我想做一件简单的事情:monkey-patch datetime。我不能完全那样做,因为datetime是 C 类。

所以我写了下面的代码:


from datetime import datetime as _datetime

class datetime(_datetime): def withTimeAtMidnight(self): return self.replace(hour=0, minute=0, second=0, microsecond=0)

这是在我称为 pimp 的包中名为 datetime.py 的文件中。

从我得到的错误消息中:

回溯(最近一次调用最后一次):
  文件“run.py”,第 1 行,在 
    从 pimp.datetime 导入日期时间
  文件“/home/lg/src/project/library/pimp/datetime/datetime.py”,第 1 行,在 
    从日期时间导入日期时间为 _datetime
导入错误:无法导入名称日期时间

我假设我不能有一个名为datetime从另一个名为datetime.

我应该如何继续保持我的模块和类的命名datetime

python datetime python-import

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

datetime.now() 的 Python 解析

from datetime import datetime
import time
for i in range(1000):
    curr_time  = datetime.now()
    print(curr_time)
    time.sleep(0.0001)
Run Code Online (Sandbox Code Playgroud)

我正在测试 的分辨率datetime.now()。由于它应该以微秒为单位输出,因此我预计每次打印都会有所不同。

然而,我总是得到类似的东西。

...
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.212073
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
2015-07-10 22:38:47.213074
...
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?有什么方法可以获得精确到微秒的时间戳吗?实际上我不需要微秒,但能获得 0.1 毫秒的分辨率就很好了。

===更新====

我将其与使用 time.perf_counter() 进行比较,并添加到起始datetime 日期时间导入日期时间、timedelta 导入时间 …

python windows datetime python-3.4

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

回车不在IDLE工作?

我正在尝试为倒数计时器创建一个代码保持原位:这样每行都会覆盖前一行.这是我到目前为止:

import time

def countdown(t):
    while t:
        mins, secs = divmod(t, 60)
        timeformat = "{:02d}:{:02d}".format(mins, secs)
        print(timeformat, end='\r')
        time.sleep(1)
        t -= 1
    print("That's the end! You lose...\n\n\n\n\n")
    exit()

countdown(10)
Run Code Online (Sandbox Code Playgroud)

但是,输出是:

00:10
00:09
00:08
...
00:00
That's the end! You lose...
Run Code Online (Sandbox Code Playgroud)

为什么回车似乎不起作用?

python python-idle python-3.x

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

Asyncio错误,尝试对非套接字的操作进行操作

我正在研究当前的玩具代码,试图理解asyncio模块.

import asyncio
import os, sys, traceback
from time import time

os.environ['PYTHONASYNCIODEBUG'] = '1'
print(sys.version)

def timed_fib(n):
    def fib(n):
        return fib(n - 1) + fib(n - 2) if n > 1 else n
    a = time()
    return fib(n), time() - a

def process_input():
    text = sys.stdin.readline()
    n = int(text.strip())
    print('fib({}) = {}'.format(n, timed_fib(n)))


@asyncio.coroutine
def print_hello():
    while True:
        print("{} - Hello world!".format(int(time())))
        yield from asyncio.sleep(3)

def main():
    loop = asyncio.get_event_loop()
    loop.add_reader(sys.stdin, process_input)
    loop.run_until_complete(print_hello())


if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

然而,尝试运行它会产生下面令人难以置信的神秘回溯.如您所见,调试环境变量在上面代码的第五行中设置,但是,回溯仍然非常无益,如下所示:

3.4.3rc1 …
Run Code Online (Sandbox Code Playgroud)

python windows python-3.x python-asyncio

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