小编Ste*_*uch的帖子

仅当参数等于某值时才单击密码选项

在单击中,我正在定义此命令:

@click.command('time', short_help='Timesheet Generator')
@click.argument('time_command', type=click.Choice(['this', 'last']))
@click.argument('data_mode', type=click.Choice(['excel', 'exchange']), default='exchange')
@click.option('--password', prompt=True, hide_input=True, confirmation_prompt=False)
@pass_context
def cli(ctx, time_command, data_mode, password):
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我只希望密码在data_mode参数等于exchange. 我怎么能把它拉下来?

python python-click

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

类型错误:似乎 nargs 设置为与复合类型 arity 冲突

我写了这个简短的小程序是为了自学 Python 中的面向对象设计。但是我目前遇到了一个非常令人困惑的错误。

  Traceback (most recent call last):
  File "main.py", line 97, in <module>
  cli()
  File "C:\Python27\lib\site-packages\click\core.py", line 716, in __call__
  return self.main(*args, **kwargs)
  File "C:\Python27\lib\site-packages\click\core.py", line 695, in main
  with self.make_context(prog_name, args, **extra) as ctx:
  File "C:\Python27\lib\site-packages\click\core.py", line 620, in make_context
  self.parse_args(ctx, args)
  File "C:\Python27\lib\site-packages\click\core.py", line 874, in parse_args
  value, args = param.handle_parse_result(ctx, opts, args)
  File "C:\Python27\lib\site-packages\click\core.py", line 1390, in handle_parse_result
  value = self.full_process_value(ctx, value)
  File "C:\Python27\lib\site-packages\click\core.py", line 1675, in full_process_value
  return Parameter.full_process_value(self, ctx, value)
  File "C:\Python27\lib\site-packages\click\core.py", line 1359, …
Run Code Online (Sandbox Code Playgroud)

python oop json python-2.7 python-click

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

“”名称“:” INVALID_RESOURCE_ID“,”消息“:”未找到请求的资源ID。“

我不明白这样一个非常重要的付款方式几乎没有帮助,使用起来太复杂了。

我试图在沙盒中完成付款,只是为了测试我们的一位客户的“退款”。

每次我尝试退款时,都会出现此错误。

我已经读过了,谷歌迷失了解决方案的建议,但是没有一个是很清楚的,还有一些根本没有任何答案。

实际上有来自贝宝的人可以帮助我吗?

paypal sandbox

7
推荐指数
0
解决办法
1063
查看次数

检查字符串中是否有任何字母数字字符

我想检查字符串中是否有任何字母数字字符。我为此编写了以下代码,并且工作正常:

s = input()

temp = any(i.isalnum() for i in s)
print(temp)
Run Code Online (Sandbox Code Playgroud)

我的问题是下面的代码,它与上面的代码有何不同:

for i in s:
    if any(i.isalnum()):
        print(True)
Run Code Online (Sandbox Code Playgroud)

for循环迭代仍在第一个代码中进行,为什么它不引发错误?第二个代码抛出:

追溯(最近一次调用):TypeError中的文件“”,第18行:“ bool”对象不可迭代

python string alphanumeric

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

在 Python 中使用 loadmat 加载 .mat 和 .m 文件

我目前正在学习神经网络课程,我正在尝试.mat使用从 Python加载文件scipy.io.loadmat(filename),但我不断收到以下错误消息:

ValueError:未知的 mat 文件类型,版本 101、58

当我尝试使用 .m 文件加载 .m 文件而不是.mat文件时,出现了相同的消息scipy.io.loadmat()

我不知道如何解决这个问题,所以如果这里有人可以帮助我,我将不胜感激。

matlab loading python-3.x

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

Require 和 option 仅在使用 click 时做出选择

使用时click我知道如何定义多项选择选项。我也知道如何将选项设置为必需选项。但是,我怎么能表明一个选项B,只需要在设置选项的值Afoo

下面是一个例子:

import click

@click.command()
@click.option('--output',
              type=click.Choice(['stdout', 'file']), default='stdout')
@click.option('--filename', type=click.STRING)
def main(output, filename):
    print("output: " + output)
    if output == 'file':
        if filename is None:
            print("filename must be provided!")
        else:
            print("filename: " + str(filename))

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

如果output选项是stdout,则filename不需要。但是,如果用户选择outputfile,则filename必须提供另一个选项。单击是否支持此模式?

在函数的开头,我可以添加如下内容:

if output == 'file' and filename is None:
    raise ValueError('When output is "file", a …
Run Code Online (Sandbox Code Playgroud)

python command-line-interface python-click

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

如何从图像中裁剪或删除白色背景

我试图使用OpenCV和Python比较图像.

考虑这些图像:


图像900 x 726


图像900 x 675


两者都有一双相同的鞋子,设置为白色背景.唯一的区别是第一个背景比第二个背景更高.

我想知道如何以编程方式裁剪两者的白色背景,以便我只剩下这双鞋.

我必须补充一点,我不可能手动裁剪背景.

python opencv python-imaging-library scikit-image

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

如何导入PEP8包

如果我从第三方导入模块,但他们使用的语法与我的排序不一致,那么pep8是否有好的方法呢?

示例:我需要使用无法编辑的第三方模块,并且它们的命名约定不是很好.

例:

thisIsABase_function(self,a,b)
Run Code Online (Sandbox Code Playgroud)

我有一些代码将pep8命名为pep8,但我想知道如何通过新的pep8名称访问这些函数?

def _pep8ify(name):
    """PEP8ify name"""
    import re
    if '.' in name:
        name = name[name.rfind('.') + 1:]
    if name[0].isdigit():
        name = "level_" + name
    name = name.replace(".", "_")
    if '_' in name:
        return name.lower()
    s1 = re.sub('(.)([A-Z][a-z]+)', r'\1_\2', name)
    return re.sub('([a-z0-9])([A-Z])', r'\1_\2', s1).lower()
Run Code Online (Sandbox Code Playgroud)

有没有办法在导入时可以PEP8这些名字?

python python-3.x

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

Pandas read_excel 百分比作为字符串

我的 Excel 工作表有一列用百分比符号存储的百分比(例如“50%”)。如何强制pandas.read_excel读取字符串“50%”而不是将其转换为浮点数?

目前该read_excel实现将百分比解析为浮点数 0.5。此外,如果我添加一个converter = {col_with_percentage: str}参数,它会将其解析为字符串“0.5”。有没有办法读取原始百分比值(“50%”)?

python pandas

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

有没有办法加快以下pandas的循环?

我的data框架包含10,000,000行!分组后,仍然有大约9,000,000个子帧循环.

代码是:

data = read.csv('big.csv')
for id, new_df in data.groupby(level=0): # look at mini df and do some analysis
    # some code for each of the small data frames
Run Code Online (Sandbox Code Playgroud)

这是非常低效的,现在代码运行了10多个小时.

有没有办法加快速度?

完整代码:

d = pd.DataFrame() # new df to populate
print 'Start of the loop'
for id, new_df in data.groupby(level=0):
    c = [new_df.iloc[i:] for i in range(len(new_df.index))]
    x = pd.concat(c, keys=new_df.index).reset_index(level=(2,3), drop=True).reset_index()
    x = x.set_index(['level_0','level_1', x.groupby(['level_0','level_1']).cumcount()])
    d = pd.concat([d, x])
Run Code Online (Sandbox Code Playgroud)

要获取数据:

data = pd.read_csv('https://raw.githubusercontent.com/skiler07/data/master/so_data.csv', index_col=0).set_index(['id','date'])
Run Code Online (Sandbox Code Playgroud)

注意:

大多数id只有1个日期.这表明只有1次访问.对于具有更多访问量的id,我想以3d格式构建它们,例如将所有访问存储在第二维度中.输出为(id,visit,features)

python numpy pandas

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