背景:某些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等)
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) 我有一个页面有几个 <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滚动,而无需单击任何地方。
在我的网站上,当点击链接时,我需要显示一个模态弹出窗口(参见此解决方案):
问题:显示时:
模态弹出窗口中的外部网站,大小合适(参见链接#1)
在模态弹出窗口中的jpeg图像,大小不正常,从某种意义上说它不适应屏幕(参见链接#2):
问题:如何使用模态弹出窗口显示的JPG图像iframe自动调整其大小,即如果JPG的高度很高,它会自动调整大小?即与在新窗口中显示图像时完全一样(参见链接#3)
PS:尝试使用此代码段时,不要忘记在浏览器中启用加载不安全脚本.如果不是,则不会显示iframe.
或者使用这个现场演示jsfiddle.
document.getElementById("link1").onclick = function(e) {
e.preventDefault();
document.getElementById("popupdarkbg").style.display = "block";
document.getElementById("popup").style.display = "block";
document.getElementById('popupiframe').src = "http://example.com";
document.getElementById('popupdarkbg').onclick = function() {
document.getElementById("popup").style.display = "none";
document.getElementById("popupdarkbg").style.display = "none";
};
return false;
}
document.getElementById("link2").onclick = function(e) {
e.preventDefault();
document.getElementById("popupdarkbg").style.display = "block";
document.getElementById("popup").style.display = "block";
document.getElementById('popupiframe').src = "https://i.imgur.com/pz2iPBW.jpg";
document.getElementById('popupdarkbg').onclick = function() {
document.getElementById("popup").style.display = "none";
document.getElementById("popupdarkbg").style.display = "none";
}; …Run Code Online (Sandbox Code Playgroud)Python+Sqlite 中是否有可用的字符串相似性度量,例如sqlite3模块?
用例示例:
import sqlite3
conn = sqlite3.connect(':memory:')
c = conn.cursor()
c.execute('CREATE TABLE mytable (id integer, description text)')
c.execute('INSERT INTO mytable VALUES (1, "hello world, guys")')
c.execute('INSERT INTO mytable VALUES (2, "hello there everybody")')
Run Code Online (Sandbox Code Playgroud)
此查询应匹配 ID 为 1 的行,但不匹配 ID 为 2 的行:
c.execute('SELECT * FROM mytable WHERE dist(description, "He lo wrold gyus") < 6')
Run Code Online (Sandbox Code Playgroud)
如何在 Sqlite+Python 中做到这一点?
关于我到目前为止发现的内容的注释:
该Levenshtein距离,即单字符编辑(插入,删除或替换)的最小数量需要改变一个字到另一个,可能是有用的,但我不知道是否SQLite中存在的正式实施(我看到了一些自定义实现,比如这个)
所述Damerau-的Levenshtein是相同的,除了它也允许两个相邻字符之间换位; 它也被称为编辑距离
我知道自己定义一个函数是可能的,但是实现这样的距离并不容易(对数据库进行超高效的自然语言处理比较真的很重要),这就是为什么我想看看 Python / Sqlite 是否已经具有这样的功能一个工具
Sqlite 具有 …
我有一个我在本地开发的 Python 网络服务器(使用 Bottle 或 Flask 或任何其他):
BUILDVERSION = "0.0.128"
@route('/')
def homepage():
... # using a template, and the homepage shows the BUILDVERSION in the footer
# so that I always know which live version is running
...
run(host='0.0.0.0', port=8080)
Run Code Online (Sandbox Code Playgroud)
每次我有重大更新时,我都会:
git commit -am "Commit name" && git push
Run Code Online (Sandbox Code Playgroud)
并且更新了远程版本。(注意:我git config receive.denyCurrentBranch updateInstead在远程仓库上使用)。
问题:我经常忘记BUILDVERSION在每次提交时手动增加,然后就不容易区分哪个版本正在运行等(因为连续两次提交可能具有相同的BUILDVERSION!)
问题:有没有办法BUILDVERSION使用 Python + Git 在每次提交时自动递增?或任何类似的(BUILDVERSION 也可以是提交 ID...),它们将以小字符出现在网站的页脚中,允许区分 Python 代码的连续版本。
假设我们有100万行像这样:
import sqlite3
db = sqlite3.connect(':memory:')
c = db.cursor()
c.execute('CREATE TABLE mytable (id integer, description text)')
c.execute('INSERT INTO mytable VALUES (1, "Riemann")')
c.execute('INSERT INTO mytable VALUES (2, "All the Carmichael numbers")')
Run Code Online (Sandbox Code Playgroud)
我知道如何用Sqlite做到这一点:
找到一个单字查询的行,最多有一些拼写错误与spellfix模块和Levenshtein距离(我在这里发布了一个详细的答案,关于如何编译它,如何使用它,...):
db.enable_load_extension(True)
db.load_extension('./spellfix')
c.execute('SELECT * FROM mytable WHERE editdist3(description, "Riehmand") < 300'); print c.fetchall()
#Query: 'Riehmand'
#Answer: [(1, u'Riemann')]
Run Code Online (Sandbox Code Playgroud)
使用1M行,这将是超级慢!如此处详述,postgresql可能会对此进行优化trigrams.Sqlite提供的快速解决方案是使用VIRTUAL TABLE USING spellfix:
c.execute('CREATE VIRTUAL TABLE mytable3 USING spellfix1')
c.execute('INSERT …Run Code Online (Sandbox Code Playgroud)我想在进行计算时显示一些图像numpy:
import numpy as np
import matplotlib.pyplot as plt
plt.ion() # Turn the interactive mode on.
for i in range(100):
A = np.random.randn(10,10)
plt.imshow(A)
plt.pause(0.001)
# do some other numpy computations here (they take < 1 ms)
Run Code Online (Sandbox Code Playgroud)
显示图像不是很快,而是相当慢。
我并不是要求每秒 100 帧,但我认为 30 fps 是可能的,但事实并非如此:经过几次迭代后,我在标准 i5 笔记本电脑(Windows 7 x64)上接近 2 fps。
如何拥有更快的imshow刷新率?
笔记:
我已经尝试过Fast Live Plotting in Matplotlib / PyPlot的主要答案,但对于blit这样一个简单的任务来说,这似乎是一个复杂的方法(使用参数),而且我也没有得到 28 fps 而只有 15 fps。
我只想将矩阵显示为图像:没有边框,没有轴,没有子图等,我想这可以比解决方案Fast Live Plotting …
我知道如何读取文件,将这些字节传递给哈希算法(例如 MD5SUM、SHA256 或 CRC32),并获取哈希值。
在这里我问的问题略有不同:
每次我们在 NTFS 分区上写入/修改文件时,它是否会重新计算哈希或 CRC32 并将此信息存储在 NTFS 元数据/FAT/MFT(主文件表)中(我不记得确切的名称)?
注意:重要的是我只想读取存储在文件系统中的存储哈希/CRC(即读取几个字节,最多应该是几毫秒),而不是重新计算哈希(这将花费很多秒来计算 10 GB 文件)。
如果是这样,如何使用 Python 访问特定文件的 CRC 或哈希值?有没有类似的东西:
import ntfsutil
ntfsutil.getCRC('d:/big50GBfile.dat') # done in < 10 ms
Run Code Online (Sandbox Code Playgroud) 问题:哪个可重现的过程可以使 Windows Python 用户将 SVG 图像渲染为 PNG?
许多问题/答案(例如Convert SVG to PNG in Python和Server-side SVG to PNG (or some other image format) in python,由于下面解释的原因,它们不重复)解释了如何使用 Python 将 SVG 转换为 PNG .
不幸的是,它们都不能用于 Python + Windows。经过 20 多分钟,以及许多不同的尝试,我仍然无法做到。有关失败尝试的更多详细信息:
cairo在 Windows 上安装并不简单,我们必须使用 Gohlke 的二进制文件在 Windows 上使用 Python 3.7 安装 pycairo:
pip install pycairo-1.20.0-cp37-cp37m-win_amd64.whl
Run Code Online (Sandbox Code Playgroud)
甚至有一次cairo安装,rsvg(从主答案为PNG(或其他图像格式)的Python服务器端SVG,转换SVG至PNG在Python)不适用于Windows:
pip install rsvg # or pyrsvg
> ERROR: No matching distribution found for …Run Code Online (Sandbox Code Playgroud)python ×7
windows ×4
filesystems ×2
html ×2
javascript ×2
sqlite ×2
c ×1
cairo ×1
encoding ×1
filenames ×1
git ×1
git-commit ×1
iframe ×1
imshow ×1
matplotlib ×1
ntfs ×1
ntfs-mft ×1
numpy ×1
popup ×1
similarity ×1
sublimetext ×1
svg ×1
utf-8 ×1
wildcard ×1