小编Ale*_*lex的帖子

pythonic在try块中引发错误的方法

我有一个方法可以检查某些东西,哪些可以

  • 提出异常本身
  • 返回True
  • 返回False

我想正确地捕获异常以自己引发异常,但是如果测试返回False也是如此.这样做的错误方法是

try:
    if not check():
        raise MyException()
except:
    raise MyException()
Run Code Online (Sandbox Code Playgroud)

因为第一次MyException被抓住except了.一种妥善处理这种方法的方法是

try:
    flag = check()
except:
    raise MyException()
else:
    if not flag:
        raise MyException()
Run Code Online (Sandbox Code Playgroud)

这是处理这种情况的唯一方法,还是有另一种方法可以更有效地处理它,摆脱flag变量?

python exception-handling try-catch

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

如何在PHP4中检查PHP对象是否具有属性.

我想检查一个PHP对象是否有属性.对于PHP5,我可以使用

if (property_exists($object, "foo")) {...}
Run Code Online (Sandbox Code Playgroud)

但我怎么能在PHP4中做同样的事情呢?

php php4

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

使用互相关检测另一个信号中的音频信号

我正在尝试用 python 编写一个脚本来检测任何给定输入音频文件中是否存在简单的警报声音。我解释了我的解决方案,如果有人可以确认它是一个好的解决方案,我将不胜感激。任何其他可以在 python 中实现的解决方案都是值得赞赏的。

我这样做的方法是通过计算两个信号的 FFT(一个是相反的)来计算两个信号的互相关,然后将它们相乘,然后计算结果的 IFFT。然后找到结果的峰值并将其与预先指定的阈值进行比较,以确定是否检测到警报声音。

这是我的代码:

import scipy.fftpack as fftpack
def similarity(template, test):
    corr = fftpack.irfft(fftpack.rfft(test , 2 * test.size ) *    \
           fftpack.rfft(template[:-1] , 2 * template.size ))           

    return max(abs(corr))
Run Code Online (Sandbox Code Playgroud)

template 和 test 是信号数据的一维列表。rfft 的第二个参数用于填充零以计算 FFT。但是,我不确定应该添加多少个零。另外,在应用 FFT 之前我应该​​对给定信号进行归一化吗?例如,根据模板信号的峰值对其进行归一化?

python convolution scipy cross-correlation

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

如何在 Linux 中避免失效的 python 进程?

使用 Ubuntu 14.04 上的 python3 (3.4.3) 我创建了一个Forker类,我在两个不同的进程中使用它来创建子进程。这是Forker课程:

class Forker(object):
    def __init__(self):     
        self.active_children = []            

    def reap_children(self):                              
        while self.active_children:                        
            pid,stat = os.waitpid(0, os.WNOHANG)       
            if not pid: break
            self.active_children.remove(pid)                

    def fork(self, function, *args, **kwargs):         
        self.reap_children()

        child_pid = os.fork()
        if child_pid == 0:
            function(*args, **kwargs)
            os._exit(0)
        else:                                               
            self.active_children.append(child_pid)

        return child_pid
Run Code Online (Sandbox Code Playgroud)

在我从这个类派生的两个不同的 Linux 进程中,然后调用例如:

self.fork(my_function, my_data)
Run Code Online (Sandbox Code Playgroud)

但是,我仍然得到一些已失效的 Python 进程:

alexand+ 24777 24735  0 20:40 pts/29   00:00:00 [python3] <defunct>
alexand+ 24838 24733  0 20:40 pts/29   00:00:00 [python3] <defunct>
Run Code Online (Sandbox Code Playgroud)

也许我可以改变一些东西来避免这些失效的进程?

python linux python-3.x

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

如何初始化Singleton派生对象一次

可能重复:
在Python中定义单例是否有简单,优雅的方法?

我有以下示例代码,其中我从Singleton派生一个类(希望它是一个):

class Singleton(object):
    _instance = None
    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = object.__new__(cls, *args, **kwargs)
        return cls._instance

class Tracer(Singleton):         
    def __init__(self):
        print "Init"

a = Tracer()
b = Tracer()
Run Code Online (Sandbox Code Playgroud)

当你尝试它时,你会看到再次调用__init__方法Tracer.是不是有单身人士让另一个实例引用原始实例?我不想__init__再次运行该方法,因为它可能会覆盖以前的信息.也许单身人士是错的还是有用的?

python singleton

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

如何在git上命名(无分支)-branch

不知何故,我离开了master分支机构并最终进入了no branch分支机构.我怎样才能给这个分支一个有意义的名字?

详细信息:致电git branch节目

* (no branch)
  master
Run Code Online (Sandbox Code Playgroud)

而我想要的(不改变任何文件)就是拥有例如

* extraBranchIEndedUpWith
  master
Run Code Online (Sandbox Code Playgroud)

git status 很干净.

git git-branch

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

如何循环 Windows 批处理文件中的环境变量?

在 Windows 中,我想遍历一组环境变量,如以下伪代码:

set MYVAR1=test
set MYVAR2=4711
set MYVAR3="a b c"

for /l %%x in (1, 1, 3) do (
   echo %MYVAR%s%%
)
Run Code Online (Sandbox Code Playgroud)

我期望以下输出

test
4711
a b c 
Run Code Online (Sandbox Code Playgroud)

如何更改此示例代码以使其正常工作?

windows batch-file

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

要安装哪个版本的TortoiseSVN以与“格式29”兼容?

我刚刚安装了TortoiseSVN 1.8.10,只是发现文件格式不兼容,格式为“格式29”。但是,这对应于哪个版本的TortoiseSVN?

svn

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

如何在android上的外部存储上写文件到文件?

将一些文本写入Android设备上的文件似乎是一项重大努力.从这里给出的答案开始,我已将以下代码实现到我的单个"Hello-World"活动中:

try {
    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(this.openFileOutput("config.txt", Context.MODE_PRIVATE));
    outputStreamWriter.write("lalala");
    outputStreamWriter.close();
} catch (IOException e) {
    Log.e("Exception", "File write failed: " + e.toString());
}
Run Code Online (Sandbox Code Playgroud)

这不会引发异常,但似乎有效.但有没有办法"看到"使用File Manageron android 创建的文件?代码片段似乎写入android文件系统上与应用程序本身相关的"秘密"位置(由using控制this.openFileOutput).

咨询不同的谷歌链接(这个 和这个 和这个)我想出以下代码:

File file = new File(this.getExternalFilesDir("temp"), "testfile.txt");
FileOutputStream fileOutput = openFileOutput(file.getName(), Context.MODE_WORLD_WRITEABLE);
fileOutput.write("lalala");
fileOutput.close();
Run Code Online (Sandbox Code Playgroud)

这会引发错误

Error:(55, 19) error: no suitable method found for write(String) method FileOutputStream.write(int) is not applicable (actual argument String cannot be converted to int by method invocation conversion) method …
Run Code Online (Sandbox Code Playgroud)

java android

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

如何使用xpath选择相邻的html元素?

我有一个html源,其中定义了几个输入框,如下:

<div class="jupyter-widgets widget-hbox widget-text" style="">
    <div class="widget-label" style="display: block;">Project:</div>
    <input type="text" class="form-control" placeholder="">
</div>
<div class="jupyter-widgets widget-hbox widget-text" style="">
    <div class="widget-label" style="display: block;">Title:</div>
    <input type="text" class="form-control" placeholder="">
</div>
...
Run Code Online (Sandbox Code Playgroud)

如何选择input与该Project元素关联的元素?

xpath

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