小编Dee*_*ace的帖子

在 Python 中保存到 .msg 文件,或者将邮件发送到文件系统

我正在使用该emails库发送邮件,但我还需要将其另存为.msg文件。我做了一些研究,还阅读了 msg 格式规范,偶然发现了这个 SO 答案,它显示了如何将邮件发送到文件系统C#,我想知道它是否也可以在 Python 中使用。

python email

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

为什么我得到:TypeError:choice()需要2个位置参数,但是给出4个?

我有一个random.choice的问题,我无法理解.我将3个参数传递给允许有4个的函数(http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.random.choice.html),但它写的我是只允许给出2和4.

def load_data():
    dataset = load_boston()
    num_samples = size(dataset.data, 0)
    test_set_sz = int(1.0 * num_samples / 10)
    tst_sub_inds = random.choice(range(num_samples), test_set_sz, False)
    data_test, label_test = dataset.data[tst_sub_inds, :], dataset.target[tst_sub_inds]
    trn_sub_inds = list(set(range(num_samples)) - set(tst_sub_inds)) 
    data_train, label_train = dataset.data[trn_sub_inds, :], dataset.target[trn_sub_inds]
    return ((data_train, label_train), (data_test, label_test))
Run Code Online (Sandbox Code Playgroud)

错误:

tst_sub_inds = random.choice(range(num_samples),test_set_sz,False)TypeError:choice()需要2个位置参数,但4个被赋予Blockquote

问题是什么?也许是因为旧版的python?

谢谢,Eli

python random choice

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

为什么测试用例中的'yield'让测试通过

我试图理解以下python代码片段,取自SublimeText3插件开发单元测试示例.

def test_delayed_insert(self):
    sublime.set_timeout(
        lambda: self.view.run_command("delayed_insert_hello_world"),
        100)
    # `delayed_insert_hello_world` will be execulated after the timeout
    # `yield 1000` will yield the runtime to main thread and continue
    # the execution 1 second later
    yield 1000
    row = self.getRow(0)
    self.assertEqual(row, "hello world")
Run Code Online (Sandbox Code Playgroud)

这怎么办?如果unittest不支持这个(将测试称为生成器),代码将不会被执行,对吧?我目前的理解是unittest框架采用屈服值'x',并将其自身暂停为'x'ms,在这种情况下为1000ms,类似于c ++线程中yield/sleep的语义.但是,这取决于'unittest'以这种方式真正使用产生的价值.

如果确实如此,为什么这个测试不会失败(在st3 = python 3.3.6和python 3.5.2中尝试过)?

from unittest import TestCase

class TestMe(TestCase):
    def test_failtest(self):
        self.assertTrue(False)
        yield 0
Run Code Online (Sandbox Code Playgroud)

运行它给出:

~$ python3 -m unittest test_me.py --verbose
test_failtest (test_me.TestMe) ... ok

----------------------------------------------------------------------
Ran 1 test in 0.000s

OK
Run Code Online (Sandbox Code Playgroud)

unit-testing python-3.x

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

这个错误是什么TypeError:'Button'对象不可调用是什么意思?

这是我第一次在tkinter编码.当我尝试在"注册"功能中创建一个新按钮时,我一直得到相同的错误"按钮"对象不可调用.我不明白这个错误对我编写的简单代码的建议.任何人都可以在下面的代码中为我澄清这个问题吗?

from tkinter import *
root = Tk()

def Registering():
    window = Toplevel(root)
    login_button = Button(window, width = 120, height = 42)



Button = Button(root,text= "Enter",command=Registering)
Button.pack()

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

python tkinter

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

lambda 函数中的“_”是什么意思以及为什么使用它?

我有一个以“_”作为参数的匿名函数,我不知道它的含义以及为什么在这里使用它。

函数是:

f = lambda _: model.loss(X, y)[0]

grad_num = eval_numerical_gradient(f, model.params[name], verbose=False, h=1e-5)

模型损失:

def loss(self, X, y=None):


    # Unpack variables from the params dictionary
    W1, b1 = self.params['W1'], self.params['b1']
    W2, b2 = self.params['W2'], self.params['b2']

    h1, h1_cache = affine_relu_forward(X, W1, b1)
    scores, h2_cache = affine_forward(h1, W2, b2)


    # If y is None then we are in test mode so just return scores
    if y is None:
        return scores

    loss, grads = 0, {}


    loss, dscores = softmax_loss(scores, y)
    loss …
Run Code Online (Sandbox Code Playgroud)

python lambda

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

Pip 安装 - “无效要求”

我在终端中运行以下命令:

pip install -r requirements-dev.txt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Invalid requirement: 'nose=1.3.7'
= is not a valid operator. Did you mean == ?
Run Code Online (Sandbox Code Playgroud)

requirements-dev.txt 看起来像这样:

nose=1.3.7
pyflakes=0.9.2
pep8=1.5.6
Run Code Online (Sandbox Code Playgroud)

为什么我收到这个错误?我对 pip 命令不太熟悉。

python pip

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

如何在if语句中将一个值与“ NaN”进行比较:Python 3.5.2 | Anaconda 4.1.0(64位)例如:a!= Nan其中a是浮点值

for r in range(65000):
    for c in range(8):
        if df1.iloc[r,c] != NaN:
            k=k+1
            df.iloc[k,3] = df1.iloc[r,c]
        else:
            print("Nan Detected")
            l=l+1
print(l," Nan Values encountered")
Run Code Online (Sandbox Code Playgroud)

python-3.x anaconda

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

正则表达式在<b>和<strong>标记之间提取文本

我需要在python中使用正则表达式在和标签之间提取文本.

例: Customizable:<strong>Features Windows 10 Pro</strong> and legacy ports <b>including VGA,</b> HDMI, RJ-45, USB Type A connections.

为此我正在做:

pattern=re.compile("(<b>(.*?)</b>)|(<strong>(.*?)</strong>)")
for label in labels:
    print(label)
    flag=0
    if(('Window'in label or 'Windows' in label) and ('<b>' in label or '<strong>' in label)):
        text=re.findall(pattern, label)
        print(text)
Run Code Online (Sandbox Code Playgroud)

其中labels是包含tag的html元素的列表.预期的输出是['Features Windows 10','including VGA,']

而不是将输出作为: [('', 'Features Windows 10 Pro'), ('including VGA,', '')]

请帮忙.提前致谢.

python regex

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

如何使用列表推导从列表中仅获取小写字符串

问的问题是:

使用list comprehensions生成一个只包含my_list中小写字母的列表.打印结果列表.

['a', 'A', 'b', 'B', 'c', 'C', 'd', 'D']
Run Code Online (Sandbox Code Playgroud)

我的代码:

my_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd', 'D']
hi = ([ char for char in range(len(my_list)) if char%2 == 0])

print(hi)
Run Code Online (Sandbox Code Playgroud)

我尝试了,但得到整数作为答案而不是我想要的字符串.

python

0
推荐指数
3
解决办法
129
查看次数

'**+'运算符在python中的行为是什么?

我是python的新手,并试图理解下面的部分.

[i**+1 for i in range(3)]
Run Code Online (Sandbox Code Playgroud)

我知道这i += 1意味着i = i + 1**+意味着什么?我知道**意味着指数,但上面列表理解的输出令我困惑.

python operators python-3.x

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