小编Lew*_*ick的帖子

是否有独立于平台的os.startfile()?

我想在几个平台(包括Mac OS)上运行程序,所以我尽量保持它与平台无关.我自己使用Windows,我有一条线os.startfile(file).这适用于我,但不适用于其他平台(我在文档中读到,我没有自己测试过).

是否有适用于所有平台的等效产品?

顺便说一下,该文件是一个.wav文件,但我希望用户能够使用他们的标准媒体播放器,这样他们就可以暂停/回放文件.这就是我使用的原因os.startfile().我也许可以使用允许播放/暂停/倒带媒体文件的库.

python platform

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

Python使用os.path.join加入当前目录和父目录

我想加入当前目录路径和goal_dir目录树中某处的相对目录路径,所以我得到了绝对路径goal_dir.这是我的尝试:

import os
goal_dir = os.path.join(os.getcwd(), "../../my_dir")
Run Code Online (Sandbox Code Playgroud)

现在,如果当前目录是C:/here/I/am/,它将它们连接起来C:/here/I/am/../../my_dir,但我想要的是C:/here/my_dir.似乎os.path.join并不那么聪明.

我怎样才能做到这一点?

python os.path

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

以python打开wave文件:未知格式:49.出了什么问题?

我尝试用wave模块打开一个wave文件,但是无论我尝试什么,我都会遇到同样的错误.出错的行如下:

wav = wave.open(f)
Run Code Online (Sandbox Code Playgroud)

这是错误消息:

Traceback (most recent call last):
  File "annotate.py", line 47, in <module>
    play(file)
  File "annotate.py", line 33, in play
    wav = wave.open(f)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 498, in open
    return Wave_read(f)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 163, in __init__
    self.initfp(f)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 143, in initfp
    self._read_fmt_chunk(chunk)
  File "C:\Program Files (x86)\Python\lib\wave.py", line 269, in _read_fmt_chunk
    raise Error('unknown format: %r' % (wFormatTag,))
wave.Error: unknown format: 49
Run Code Online (Sandbox Code Playgroud)

String f是.WAV文件的路径,在我的任何媒体播放器中播放时都可以使用.我当然导入了wave模块.我试过f …

python format wave

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

在 python 中播放 .wav 文件的一部分

是否可以在 Python 中播放 .wav 文件的特定部分?

我想要一个功能,可以从几秒钟play(file, start, length)开始播放音频文件,并在几秒钟后停止播放。这可能吗?如果可以,我需要什么库?filestartlength

python playback wave

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

我可以将自己的功能添加到Excel中的自定义状态栏吗?

如果我在Excel中选择了多个单元格,我可以在自定义状态栏中看到一些函数.这些信息是我自己选择的以下内容:

  • 平均
  • 计数
  • 数字计数
  • 最低限度
  • 最大值

我想在此列表中添加一个计算非空单元格比率的函数.该函数将是= COUNTA(范围)/(COUNTA(范围)+ COUNTBLANK(范围)),但是如何将其输入状态栏?我对VBA没有多少经验,所以欢迎一些解释.

excel vba statusbar excel-vba excel-2010

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

防止在列表理解中除以零

我有以下代码:

scores = [matrix[i][i] / sum(matrix[i]) for (i, scores) in enumerate(matrix)]
Run Code Online (Sandbox Code Playgroud)

我的问题是sum(confusion_matrix [idx])在某些情况下可能为0,从而导致a sum(matrix[i]).但因为ZeroDivisionError在这种情况下也是0,我解决了这个问题如下:

scores = [divide(matrix[i][i], sum(matrix[i])) for (i, scores) in enumerate(matrix)]
Run Code Online (Sandbox Code Playgroud)

matrix[i][i]如果divide(x, y)y == 0if ,函数返回1 (x / y).但我想知道是否有更简单的方法.也许我可以使用一些三元运算符,但在Python中是否存在?

python list-comprehension divide-by-zero

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

ImportError:没有名为“ flask.ext”的模块

当我像这样导入Flask扩展名时,它可以正常工作:

from flask_module import Module
Run Code Online (Sandbox Code Playgroud)

因此,扩展程序已正确安装。

但是每当我尝试导入这样的Flask扩展名时:

from flask.ext.module import Module
Run Code Online (Sandbox Code Playgroud)

我收到以下错误: ImportError: No module named 'flask.ext'

这是怎么了?

我不确定此信息是否有用,但无论如何:

  1. 我还没有找到可以最后使用的扩展程序
  2. 我使用Windows 10,Python3.5和Flask 1.0.2
  3. 我处于虚拟环境中

python python-import importerror flask

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

bash中花括号内的感叹号和哈希

我正在尝试理解bash 脚本,但在使用以下行时遇到了问题:

result=${!#}
Run Code Online (Sandbox Code Playgroud)

!这里找到了部分解决方案(内${}):

如果参数的第一个字符是感叹号 (!),则它引入了一个变量间接级别。Bash 使用由参数的其余部分形成的变量的值作为变量的名称;这个变量然后被扩展,并且该值用于替换的其余部分,而不是参数本身的值。这称为间接扩展。

解决方案的另一部分(#${})在这里

参数的扩展值的字符长度被替换。如果参数是“ ”或“@”,则替换的值是位置参数的数量。如果参数是一个以“ ”或“@”下标的数组名称,则替换的值是数组中的元素数。如果参数是一个下标为负数的索引数组名称,则该数字被解释为相对于大于参数的最大索引的一个,因此负索引从数组的末尾开始计数,并且索引 -1 引用最后一个元素。

但我不知道这两个是如何组合成result. 这条线有什么作用?

bash variable-expansion

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