小编Bas*_*asj的帖子

将浮点数组渲染为24位RGB图像(例如,使用PIL)

x是一个numpy.float32数组,使用来自值-2000.这些是dB(分贝)值.

当我这样做时(按照此处的建议):

Image.fromarray(x, mode='F')
Run Code Online (Sandbox Code Playgroud)

我得到一个灰度或有时几乎是黑色的图像.

如何将[-200,0]中的float映射到24位RGB字节数组(使用色彩映射),可以使用Python模块PIL读取Image.fromarray(x, mode='RGB')


编辑:

所需的.wav音频文件是在这里,为此我们要绘制的频谱.

这是一些要测试的代码:

import scipy, numpy as np
import scipy.io.wavfile as wavfile
import numpy as np
from PIL import Image

def stft(x, fftsize=1024, overlap=4): 
    hop = fftsize / overlap
    w = scipy.hanning(fftsize+1)[:-1]
    return np.array([np.fft.rfft(w*x[i:i+fftsize]) for i in range(0, len(x)-fftsize, hop)])

def dB(ratio):
    return 20 * np.log10(ratio+1e-10)

def magnitudedB(frame, fftsize=1024):
    w = scipy.hanning(fftsize+1)[:-1]
    ref = np.sum(w) / 2
    return …
Run Code Online (Sandbox Code Playgroud)

python numpy spectrogram python-imaging-library colormap

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

100万行ListView

我有一个SysListView32应该托管数百万行,三列文本A,B,C每个<256个字符.

假设列B有很多次重复(例如:列A是文件名,列B是路径,每行是文件系统的文件),并且只有100k不同的值(而不是几百万).

是否可以避免ListViewGUI元素B列内容的RAM重复?

我们可以ListView只填充指向数组元素的指针(取自列B的不同值的100k元素数组),而不是重复数据吗?

如何修改它以使其工作?

LV_ITEM item;
item.mask = LVIF_TEXT;
item.pszText = "Hello";
...
ListView_SetItem(hList, &item);
Run Code Online (Sandbox Code Playgroud)

windows user-interface winapi listview syslistview32

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

加速 NTFS 文件枚举(使用 FSCTL_ENUM_USN_DATA 和 NTFS MFT / USN 日志)

我通过查看 NTFS MFT / USN 日志来枚举 NTFS 硬盘驱动器分区的文件:

HANDLE hDrive = CreateFile(szVolumePath, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, NULL, NULL);
DWORD cb = 0;

MFT_ENUM_DATA med = { 0 };
med.StartFileReferenceNumber = 0;
med.LowUsn = 0;
med.HighUsn = MAXLONGLONG;      // no change in perf if I use med.HighUsn = ujd.NextUsn; where "USN_JOURNAL_DATA ujd" is loaded before

unsigned char pData[sizeof(DWORDLONG) + 0x10000] = { 0 }; // 64 kB

while (DeviceIoControl(hDrive, FSCTL_ENUM_USN_DATA, &med, sizeof(med), pData, sizeof(pData), &cb, NULL))
{
        med.StartFileReferenceNumber = …
Run Code Online (Sandbox Code Playgroud)

c++ performance winapi ntfs ntfs-mft

5
推荐指数
0
解决办法
1536
查看次数

*.*在C中的argv [1]中

背景:某些Windows命令行程序允许*.*在第一个参数中使用:

myprogram *.*
Run Code Online (Sandbox Code Playgroud)

并将自动循环目录的所有文件.

其他一些则没有,因此需要批处理循环:

for %%c in ("*.*") do myprogram "%%c"
Run Code Online (Sandbox Code Playgroud)

问题:是否有标准方式(在C语言中定义或OS提供?)允许*.**.txt在参数中,以便它自动对相关文件进行处理?

int main(int argc, char *argv[])
{
    FILE *kf;

    "for fname in argv[1]"    // pseudo code here meaning: 
                              // let's loop on all files described by the first argument
    {
        kf = fopen(fname, "rb");
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

我想检查一个解决方案是否存在,然后滚动我自己(重新发明通配符扩展的轮子,使用FindFirstFile等)

c windows filesystems filenames wildcard

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

使用Windows 7在Sublime Text 2的控制台中打印utf-8字符串

python myscript.py从Windows控制台cmd.exe(即Sublime Text 之外)运行此代码时,它的工作原理如下:

# coding: utf8
import json
d = json.loads("""{"mykey": {"readme": "Café"}}""")
print d['mykey']['readme']
Run Code Online (Sandbox Code Playgroud)

咖啡店

在Sublime Text 2中运行时CTRL+B,它会失败:

  • 这样(默认情况下):

    print d ['mykey'] ['readme']
    UnicodeEncodeError:'ascii'编解码器无法对位置3中的字符u'\ xe9'进行编码:序数不在范围内(128)
    [以0.1秒结束,退出代码为1]

  • 或者像这样,在使用Sublime Text 3(即在构建系统中添加)在Python 3打印UTF-8的答案应用解决方案之后:cmd.exe

    [解码错误 - 输出不是utf-8]
    [解码错误 - 输出不是utf-8]
    [以0.1秒完成]

  • 添加"env": {"PYTHONIOENCODING": "utf8"},Python Sublime-build文件也无济于事

如何"encoding": "utf-8"正确使用Sublime Text 2(适用于Windows)控制台,如果它包含一些UTF8字符?

注意:这不是使用Sublime Text 3在Python 3打印UTF-8的重复,我之前已经链接到这个问题.

这是print文件:

{ "cmd": ["python", "-u", "$file"], …
Run Code Online (Sandbox Code Playgroud)

python windows encoding utf-8 sublimetext

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

自动聚焦到 div,因此我们可以使用箭头键滚动而无需先单击

我有一个页面有几个 <div>包含容器。

如何在页面加载时将焦点放在其中之一,以便用户可以使用箭头键滚动(甚至SPACE滚动)而无需单击div一个?

我试过了:

<div id="main" autofocus>
Run Code Online (Sandbox Code Playgroud)

autofocus似乎不适用于 non-input div

_

可能是一个解决方案,但浏览器地址栏会显示我不想要的 id http://example.com/#main

<body onload="location.hash = 'main';">
<div id="main">content</div>
</body>
Run Code Online (Sandbox Code Playgroud)

_

示例:当您打开https://en.wikipedia.org/wiki/Main_Page 时,您可以立即使用Down arrow键 或Space滚动,而无需单击任何地方。

html javascript

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

如何检测扫描纸上的图案(例如二维码),以便正确旋转/缩放/识别?

我有需要打印的 PDF 文件或 JPG 图像(这些是手动填写的公式),我需要:

  • 扫描后,应使用 Python 完美旋转/缩放图像,以便我可以使用 x、y 坐标访问公式的某些部分

  • 应使用数字 ID 识别扫描的图像。

我应该在公式纸上添加什么样的模式,以便 Python 库(哪个?)能够裁剪/旋转它/用 ID 识别它?

我正在考虑在纸的左上角添加一个二维码(包含一个数字 ID),在纸的右下角添加一个二维码,或者也可能是“hirondelles”符号:

二维码将使用qrcode库生成:

import qrcode
img = qrcode.make('ID1138934')
Run Code Online (Sandbox Code Playgroud)

并使用此方法添加到 PDF 之上。


笔记:

在此处输入图片说明

python opencv qr-code image-processing image-scanner

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

如何使用 Python 与窗口的 GUI 交互?

假设您要打开myapp.exe,打开第三个菜单,然后选择第二个菜单项(即就像用户使用键盘或鼠标所做的那样),然后在对话窗口中选择第二个按钮。

pyahk并且pyautogui似乎提供了这个,但是以一种相当“低级”的方式,通过模拟点击:

pyautogui.click(x=moveToX, y=moveToY, clicks=num_of_clicks, interval=secs_between_clicks, button='left')
Run Code Online (Sandbox Code Playgroud)

如何使用 Python 以更高级别的方式与 Windows GUI 交互?

例子:

window = gui.open('myapp.exe')
window.menu_open(3).choose_item(2)
child_window = window.wait_for_dialog()
child_window.buttons[1].click()
Run Code Online (Sandbox Code Playgroud)

python windows user-interface winapi

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

拒绝 xmlrpc.php 文件但不记录失败的请求

我将此添加到.htaccessWordPress 网站:

<files xmlrpc.php>
order allow,deny
deny from all
</files>
Run Code Online (Sandbox Code Playgroud)

它有效,当有人尝试访问时http://example.com/xmlrpc.php,会显示此消息:

Forbidden
您无权访问此服务器上的 /xmlrpc.php。

但是,日志仍然显示 ( less /var/log/apache2/error.log):

[Thu May 02 10:02:03.316061 2019] [access_compat:error] [pid 19467] 
[client 1.2.3.4:49409] AH01797: client denied by server 
configuration: /path/to/xmlrpc.php
Run Code Online (Sandbox Code Playgroud)

如何拒绝访问 xmlrpc.php(可能来自 .htaccess)但防止它出现在 Apache 日志中?

php apache wordpress .htaccess xml-rpc

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

直接在线运行Jupyter笔记本(无需下载到本地)

当找到一个有趣的 Python Jupyter Notebook 时,例如02.00-Introduction-to-NumPy.ipynb,我通常必须:

  • 下载到本地
  • 在同一文件夹中打开 shell(提示:使用SHIFT+ RIGHT CLICK+在此处打开命令窗口可以节省在不同文件夹中浏览 30 秒的时间)并执行以下操作jupyter notebook
  • 选择正确的.ipynb文件,最后运行代码

难道没有更简单的方法吗?

打开在线 .ipynb 笔记本并运行代码而无需手动下载 .ipynb 的自然方法是什么?

注意:笔记本在这里可见: https: //github.com/jakevdp/PythonDataScienceHandbook/blob/master/notebooks/02.00-Introduction-to-NumPy.ipynb,但我们无法运行代码

python windows jupyter-notebook

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