小编Eri*_*and的帖子

Python 是否禁止使用两个相似的 Unicode 标识符?

我在玩 Unicode 标识符并偶然发现了这一点:

>>> , x = 1, 2
>>> , x
(1, 2)
>>> , f = 1, 2
>>> , f
(2, 2)
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?为什么 Python 会替换 引用的对象,但只是有时?这种行为在哪里描述?

python unicode

84
推荐指数
2
解决办法
6088
查看次数

从Python中获取ISO周数的日期

可能重复:
找到datetime.isocalendar()的反转的最佳方法是什么?

我有ISO 8601年和周编号,我需要将其翻译为该周(星期一)第一天的日期.我怎样才能做到这一点?

datetime.strptime()接受a %W和a %U指令,但都不遵守datetime.isocalendar()使用的ISO 8601工作日规则.

更新: Python的3.6支持%G,%V%u指令也存在于libc中,使这一个班轮:

>>> datetime.strptime('2011 22 1', '%G %V %u')
datetime.datetime(2011, 5, 30, 0, 0)
Run Code Online (Sandbox Code Playgroud)

python iso week-number

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

如何在Python中创建异步生成器?

我正在尝试将此Python2.7代码重写为新的异步世界顺序:

def get_api_results(func, iterable):
    pool = multiprocessing.Pool(5)
    for res in pool.map(func, iterable):
        yield res
Run Code Online (Sandbox Code Playgroud)

map()阻塞直到计算完所有结果,所以我试图将其重写为异步实现,一旦准备就会产生结果.同样map(),返回值必须按照与之相同的顺序返回iterable.我试过这个(我需要requests因为传统的身份验证要求):

import requests

def get(i):
    r = requests.get('https://example.com/api/items/%s' % i)
    return i, r.json()

async def get_api_results():
    loop = asyncio.get_event_loop()
    futures = []
    for n in range(1, 11):
        futures.append(loop.run_in_executor(None, get, n))
    async for f in futures:
        k, v = await f
        yield k, v

for r in get_api_results():
    print(r)
Run Code Online (Sandbox Code Playgroud)

但是使用Python 3.6我得到了:

  File "scratch.py", line 16, in <module>
    for r in …
Run Code Online (Sandbox Code Playgroud)

python asynchronous generator async-await python-asyncio

12
推荐指数
2
解决办法
9859
查看次数

在Vim中运行Python代码而不保存

有没有办法在vim中运行我当前的python代码而不对文件进行任何更改?通常,当我想从vim中测试我的代码时,我会执行:

:w !python
Run Code Online (Sandbox Code Playgroud)

但是,这会覆盖我正在编辑的当前文件.通常,我会添加打印语句或注释内容,以查看我的代码无效的原因.我不希望这些更改覆盖我正在处理的任何.py文件的先前版本.有办法吗?也许是保存到临时文件并在之后删除它的组合?

python vim

7
推荐指数
1
解决办法
356
查看次数

获取Python包中的所有类名

我需要获取Python包中所有类的列表.起初我得到所有文件名(它工作正常,从stackoverflow获取):

from os import listdir, getcwd
from os.path import isfile, join
mypath = getcwd()
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
Run Code Online (Sandbox Code Playgroud)

然后我检查所有文件,它不能正常工作:

for x in onlyfiles:
    for name, obj in inspect.getmembers(x):
        if inspect.isclass(obj):
            print obj
Run Code Online (Sandbox Code Playgroud)

输出是:

<type 'str'>
....
<type 'str'>
Run Code Online (Sandbox Code Playgroud)

但是,以下代码正常工作:

    for name, obj in inspect.getmembers(example.py):
        if inspect.isclass(obj):
            print obj
Run Code Online (Sandbox Code Playgroud)

你能帮我弄清楚错误是什么吗?

python class

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

Python 3.5中的包导入失败

我有以下文件夹结构:

/main
    main.py
    /io
        __init__.py
        foo.py
Run Code Online (Sandbox Code Playgroud)

在Python 2.7中,我将在以下内容中编写以下内容main.py:

import io.foo
Run Code Online (Sandbox Code Playgroud)

要么

from io.foo import *
Run Code Online (Sandbox Code Playgroud)

Python 3.5中的wheareas我收到导入错误:

Traceback (most recent call last):
  File "./main.py", line 6, in <module>
    import io.foo
ImportError: No module named 'io.foo'; 'io' is not a package
Run Code Online (Sandbox Code Playgroud)

到目前为止我找不到任何帮助.

python import python-3.x

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

Python 密钥错误“sapi5”

以前曾提出过此类问题,但帮助不大。我在Windows 10操作系统中使用Python3.6版本。我收到错误 KeyError: 'sapi5' 并且在处理上述异常期间,发生了另一个异常。我的代码是:

import pyttsx3
engine = pyttsx3.init('sapi5')
voices = engine.getProperty('voices')
print(voices)
Run Code Online (Sandbox Code Playgroud)

这是堆栈跟踪:

 File "c:/Users/farhe/OneDrive/Desktop/PYTHON/jarvis/ai.py.py", line 2, in <module>
    engine = pyttsx3.init(sapi5)
NameError: name 'sapi5' is not defined
Run Code Online (Sandbox Code Playgroud)

我应该怎么办?

python python-3.x pyttsx

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

完全流式XML解析器

我正在尝试使用请求,lxmlbase64io来使用Exchange GetAttachment webservice .此服务在SOAP XML HTTP响应中返回base64编码的文件.文件内容包含在单个XML元素中的单行中.只是一个例子,但问题更为笼统.GetAttachment

我想将解码后的文件内容直接流式传输到磁盘,而不会在任何时候将附件的全部内容存储在内存中,因为附件可能是几百MB.

我尝试过这样的事情:

r = requests.post('https://example.com/EWS/Exchange.asmx', data=..., stream=True)
with open('foo.txt', 'wb') as f:
    for action, elem in lxml.etree.iterparse(GzipFile(fileobj=r.raw)):
    if elem.tag == 't:Content':
        b64_encoder = Base64IO(BytesIO(elem.text))
        f.write(b64_encoder.read())
Run Code Online (Sandbox Code Playgroud)

lxml仍然存储附件的副本elem.text.有没有什么办法可以创建一个完全流式的XML解析器,它也可以直接从输入流中流式传输元素的内容?

python xml lxml soap python-requests

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

爆炸数组并删除前缀

我试图使用explode为字符串创建一个数组.

这是我的字符串:

$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
Run Code Online (Sandbox Code Playgroud)

这是我的完整代码:

$string = "a:1,b:2,c:3,d:4,e:5,f:6,g:7";
$d = explode(',', $string);
echo '<pre>';
var_dump($d);
Run Code Online (Sandbox Code Playgroud)

之后我得到了这样的结果..

array(7) {
  [0]=>
  string(3) "a:1"
  [1]=>
  string(3) "b:2"
  [2]=>
  string(3) "c:3"
  [3]=>
  string(3) "d:4"
  [4]=>
  string(3) "e:5"
  [5]=>
  string(3) "f:6"
  [6]=>
  string(3) "g:7"
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能创建这样的数组呢?:

array(7) {
  ["a"]=>
  string(1) "1"
  ["b"]=>
  string(1) "2"
  ["c"]=>
  string(1) "3"
  ["d"]=>
  string(1) "4"
  ["e"]=>
  string(1) "5"
  ["f"]=>
  string(1) "6"
  ["g"]=>
  string(1) "7"
}
Run Code Online (Sandbox Code Playgroud)

php arrays explode multidimensional-array

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

keras.utils.plot_model 没有显示图形

我正在学习 Keras 和 TensorFlow,我正在尝试运行一个包含 keras.utils.plot_model 指令的示例代码,但他没有向我展示图形,代码的另一部分工作得很好,但最后,我看不到程序应该显示的图形。我有 2 天的时间试图解决这个问题,但我做不到。这是代码:

import numpy as np    
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

inputs = keras.Input(shape=(784,))
print(inputs.shape) 
print(inputs.dtype) 

dense = layers.Dense(64, activation="relu")
x = dense(inputs) 
x = layers.Dense(64, activation="relu")(x) 
outputs = layers.Dense(10)(x)

model = keras.Model(inputs=inputs, outputs=outputs, name="mnist_model")
print(model.summary())

keras.utils.plot_model(model, "my_first_model.png")

Run Code Online (Sandbox Code Playgroud)

这是模型结果,没有显示图形:

(None, 784)
<dtype: 'float32'>
2020-06-14 13:24:33.233826: I tensorflow/core/platform/cpu_feature_guard.cc:142] Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2
Model: "mnist_model"
_________________________________________________________________
Layer (type)                 Output …
Run Code Online (Sandbox Code Playgroud)

python pydot keras tensorflow

0
推荐指数
1
解决办法
825
查看次数

从python列表中提取序列

我在python中有一个列表,如下所示:

['x','x','x','x','P','x','x','N','P','N','x','x','x','N','P','x','x,'x,','x','x','x','N','x,'x','P','N','x','x','x'....]
Run Code Online (Sandbox Code Playgroud)

我需要处理在某些方面,这样我恢复的单独序列列表PN.在上面的例子中我需要返回:

[['P'],['N','P','N'],['N','P'],['N'],['P','N'].....]
Run Code Online (Sandbox Code Playgroud)

我看过itertools但没有发现任何能做到这一点的事情.我有很多列表要以这种方式处理,因此效率也很重要.

python sequences list sequence

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