我在玩 Unicode 标识符并偶然发现了这一点:
>>> , x = 1, 2
>>> , x
(1, 2)
>>> , f = 1, 2
>>> , f
(2, 2)
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?为什么 Python 会替换 引用的对象,但只是有时?这种行为在哪里描述?
我有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) 我正在尝试将此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) 有没有办法在vim中运行我当前的python代码而不对文件进行任何更改?通常,当我想从vim中测试我的代码时,我会执行:
:w !python
Run Code Online (Sandbox Code Playgroud)
但是,这会覆盖我正在编辑的当前文件.通常,我会添加打印语句或注释内容,以查看我的代码无效的原因.我不希望这些更改覆盖我正在处理的任何.py文件的先前版本.有办法吗?也许是保存到临时文件并在之后删除它的组合?
我需要获取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)
你能帮我弄清楚错误是什么吗?
我有以下文件夹结构:
/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)
到目前为止我找不到任何帮助.
以前曾提出过此类问题,但帮助不大。我在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)
我应该怎么办?
我正在尝试使用请求,lxml和base64io来使用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解析器,它也可以直接从输入流中流式传输元素的内容?
我试图使用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) 我正在学习 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中有一个列表,如下所示:
['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)
我需要处理在某些方面,这样我恢复的单独序列列表P和N.在上面的例子中我需要返回:
[['P'],['N','P','N'],['N','P'],['N'],['P','N'].....]
Run Code Online (Sandbox Code Playgroud)
我看过itertools但没有发现任何能做到这一点的事情.我有很多列表要以这种方式处理,因此效率也很重要.
python ×10
python-3.x ×2
arrays ×1
async-await ×1
asynchronous ×1
class ×1
explode ×1
generator ×1
import ×1
iso ×1
keras ×1
list ×1
lxml ×1
php ×1
pydot ×1
pyttsx ×1
sequence ×1
sequences ×1
soap ×1
tensorflow ×1
unicode ×1
vim ×1
week-number ×1
xml ×1