小编PM *_*ing的帖子

为什么Bare-Except被淹没的原因

在一种有限的方式中,我想知道为什么在Python中使用裸露的东西是如此不受欢迎.

如果我有一个完整的程序运行,我会这样做:

import sys
from application import program
try:
    program.start()
except:
    print >> sys.stderr, "It didn't work"
Run Code Online (Sandbox Code Playgroud)

我正在压制重要信息并且没有真正的输出.但是让我们考虑我正在为配置设置进行IO操作,如果配置不存在或已损坏,我有一组模板要使用:

import os
from config import load_data
from template import save_data

dir = os.path.expanduser('~')
path = os.path.join(dir, 'config.txt')
try:
    load_data(path)
except:
    save_data(path)
Run Code Online (Sandbox Code Playgroud)

我想在这种情况下,构建一个捕获操作的自定义异常是否更好,以便为阅读代码的人提供更多信息?

python python-2.7

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

如何通过sudo用户执行shell脚本

有人可以通过sudo用户提供运行shellcript的示例吗?

我试过这样的.

sudo/usr/local/sbin/deploy | ./tmp/cp1.sh

上述脚本作为普通用户而不是sudo用户执行.

sudo sh

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

Python中的re.sub()在替换字符串中的货币值时并不总是有效

我在Python中构建了一个"货币标记器",它标识所有货币表达式并用标记的字符串替换它们.

例如,
替换"I have $20 in my pocket"
"I have <Currency>$20</Currency> in my pocket"

其中一项任务要求我用标记字符串替换标识为Currency的字符串.我正在使用re.sub()这个.

除了"$ 4.4B"或"$ 4.4M"形式外,它适用于各种形式的字符串.

我尝试在我的python控制台中运行简单的示例,发现它re.sub()与具有混合美元模式的模式不一致.

例如,

>>> text = "I have #20 in my pocket"
>>> re.sub("#20", "$20", text)
'I have $20 in my pocket'
>>> text = "I have $20 in my pocket"
>>> re.sub("$20", "#20", text)
'I have $20 in my pocket'
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,您会看到当我尝试将"$ 20"替换为"#20"时,它不起作用(在第二种情况下).

当然,任何帮助都将非常感激.由于这个原因,一个非常愚蠢的虫子出现了并且正在拖延主要工作.

python regex text-mining python-2.7

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

如何让用户输入一个小数以及一个整数?

如何让用户输入他们想要的任何类型的数字?这是我尝试过的:

a=0
def main():
    x = int(input("Input a number in Celsius to convert it to Fahrenheit"))
    f = (x*1.8)+(32)
    print(f, "degrees Fahrenheit")

a=a+1
while a > 0:
    main()

main()
Run Code Online (Sandbox Code Playgroud)

python

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

Python元类冲突/类型错误

我正在调试一个 python 脚本(python 不是我的首选语言),这是我第一次在 python 中使用元类。当我运行如下代码时,出现元类冲突错误。

TypeError: Error when calling the metaclass bases
    metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
Run Code Online (Sandbox Code Playgroud)

在尝试解决它时,我注释掉了 中的元类声明MySQLMSoftware,认为它是多余的,因为它继承自具有相同元类声明的类,但这导致:

TypeError: Error when calling the metaclass bases
    module.__init__() takes at most 2 arguments (3 given)
Run Code Online (Sandbox Code Playgroud)

任何见解、指导或方向将不胜感激。我一直在阅读有关 python 的元类实现的信息,到目前为止这个问题还没有出现。

MSoftware.py

from abc import ABCMeta, abstractmethod

class MSoftware(object) :
    __metaclass__ = ABCMeta

    def __init__(self,name,spark=None,mysql=None):
        self.name = name
        ...
Run Code Online (Sandbox Code Playgroud)

MySQLM软件.py

from mouse import Mouse, MSoftware
from …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

在另一个函数调用中调用一个函数

def func1(arg1,arg2,arg3,arg4)
    ...

def func2(arg5,arg6)
    return a,b,c,d

func1(func2(arg5,arg6))
Run Code Online (Sandbox Code Playgroud)

我可以像这样调用func1(func2(arg5,arg6))吗?因为func2将返回4个将传递给func1的项目

python syntax function

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

对列表中的奇数进行排序

如何在整数列表中对奇数进行排序,但将偶数保留在原始位置?

例:

sortArray([5, 3, 2, 8, 1, 4]) == [1, 3, 2, 8, 5, 4]
Run Code Online (Sandbox Code Playgroud)

我的代码:

def sort_array(source_array):     
    odd_numbers = [n for n in source_array if n%2!=0]
    odd_numbers = sorted(odd_numbers)
Run Code Online (Sandbox Code Playgroud)

如何切换奇数的索引source_arrayodd_numbers

python

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

为什么 Python 会自动将字符串中的十六进制编码为 UTF-8?

我一直在使用 python 进行 ascii 到二进制的翻译,并一直遇到解析结果的问题。最终我想看看 Python 命令生成了什么。

0xc2输出中似乎插入了胭脂(例如):

$ python -c 'print("\x80")' | xxd
00000000: c280 0a                                  ...
Run Code Online (Sandbox Code Playgroud)

实际上,无论在哪里使用此类字节都会发生这种情况:

$ python -c 'print("Test\x80Test2\x81")' | xxd
00000000: 5465 7374 c280 5465 7374 32c2 810a       Test..Test2...
Run Code Online (Sandbox Code Playgroud)

凭直觉,我仔细研究了UTF-8,果然,U+0080编码为0xc2 0x80. 显然,Python 冒昧地假设\x80实际上是U+0080. 有没有办法改变这个默认行为或以其他方式明确规定我的意图是包含单字节0x80而不是 UTF 编码?

Python 3.6.2

python unicode python-3.x

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

自定义matplotlib中的颜色 - 热图

如何在热图中指定颜色.在此示例中,数据是4个值中唯一的一个{0,1,2,3}

Index= ['aaa', 'bbb', 'ccc', 'ddd', 'eee']
Cols = ['A', 'B', 'C', 'D']

data= [[ 0, 3, 1, 1],[ 0, 1, 1, 1],[ 0, 1, 2, 1],[ 0, 2, 1, 2],[ 0, 1, 1, 1]]
print data
df = pd.DataFrame(data, index=Index, columns=Cols)
heatmap = plt.pcolor(np.array(data))
plt.colorbar(heatmap)
plt.show()
Run Code Online (Sandbox Code Playgroud)

如何以表示颜色的方式指定这些颜色= {0:'green',1:'red',2:'black',3:'yellow'}

python data-visualization matplotlib heatmap

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

python拆分列表基于condition/if else语句

我正在尝试将列表拆分为两个列表.这是清单:

L = [3.5,1,图7,2,4.5,1,图6,2,4.8,2 ,3.1,1,9,2 ]

如果我想根据粗体数字(1或2)拆分列表,这些数字始终是位置中的偶数(2x),所以1之前的数字转到一个列表,2之前的数字转到另一个列表:

l1 = [3.5, 4.5, 3.1] #bold number = 1

l2 = [7, 6, 4.8, 9] #bold number = 2
Run Code Online (Sandbox Code Playgroud)

此外,当存在i+1粗体数字时可以扩展该问题,因此需要将其拆分为i+1列表.

我应该如何使用if- else列表的陈述?

python split if-statement list

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