我想下载维基百科上一篇文章的完整修订历史记录,但遇到了障碍。
下载整篇维基百科文章,或者使用Special:Export URL 参数获取其历史片段非常容易:
curl -d "" 'https://en.wikipedia.org/w/index.php?title=Special:Export&pages=Stack_Overflow&limit=1000&offset=1' -o "StackOverflow.xml"
Run Code Online (Sandbox Code Playgroud)
当然,我可以从这里下载整个网站,包括每篇文章的所有版本,但这比我需要的要多 TB 和更多的数据。
有没有预先构建的方法来执行此操作?(看来一定有。)
Windows 10 中的新放大镜通过选中“启用位图平滑”创建非常有趣的结果。
这里使用的算法的名称是什么?我怎样才能取得这些令人印象深刻的结果?这个放大镜生成的矢量几乎完美到足以制作矢量 OTF 字体!我所知道的每种位图跟踪方法都不适用于像素艺术或像素字体。
与 Adobe Illustrator 专有位图追踪算法的比较:
我知道我们可以在建立连接后获得客户端(主机)IP,因为那时我们将具有传输属性:
self.transport.getPeer()
Run Code Online (Sandbox Code Playgroud)
但是当它断开与服务器的连接时,如何在扭曲的TCP服务器中获取客户端的IP地址.
☺:
>>> bytes('?','ibm437')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.3/encodings/cp437.py", line 12, in encode
return codecs.charmap_encode(input,errors,encoding_map)
UnicodeEncodeError: 'charmap' codec can't encode character '\u263a' in position 0: character maps to <undefined>
Run Code Online (Sandbox Code Playgroud)
与é相反,它起作用:
>>> bytes('é','ibm437')
b'\x82'
Run Code Online (Sandbox Code Playgroud)
我希望☺能把我带回来b'\x01'.我怎么能这样呢?
根据此 Github 问题,rust-encoding crate 缺少 SHIFT-JIS 支持。鉴于此,在 Rust 中解码 SHIFT-JIS 的最佳方法是什么?
或者,为什么这不起作用,假设您正确地将文件设置为可执行文件?(在我的系统上它只是挂起,但可以用 ^C 杀死。)
#!/usr/bin/env TEST=TEST python
print('hello')
Run Code Online (Sandbox Code Playgroud)
虽然这样做:
#!/usr/bin/env python
print('hello')
Run Code Online (Sandbox Code Playgroud)
就像这样:
[fred@pc build]$ /usr/bin/env TEST=TEST python hello.py
hello
Run Code Online (Sandbox Code Playgroud) 考虑以下:
>>> a = {}
>>> b = {}
>>> c = {}
>>> c['a'] = 'b'
>>> a
{}
>>> b
{}
>>> c
{'a': 'b'}
Run Code Online (Sandbox Code Playgroud)
好的,这一切都很好.正是我所期待的.那么我缩短它.
>>> a = b = c = {}
>>> c['a'] = 'b'
>>> a
{'a': 'b'}
>>> b
{'a': 'b'}
>>> c
{'a': 'b'}
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?其他不可变数据类型(如整数)不会发生这种情况.
>>> a = b = c = 0
>>> a += 1
>>> a
1
>>> b
0
>>> c
0
Run Code Online (Sandbox Code Playgroud)
我认为这可能与不变性有关,但这种行为对我来说很奇怪.谁能解释为什么会发生这种情况?
我正在尝试打开最新的日语维基百科数据库,以便在Linux上阅读Python 3.3.1,但是Segmentation fault (core dumped)这个短程序出错:
with open("jawiki-latest-pages-articles.xml") as f:
text = f.read()
Run Code Online (Sandbox Code Playgroud)
文件本身很大:
-rw-r--r-- 1 fredrick users 7368183805 May 17 20:19 jawiki-latest-pages-articles.xml
Run Code Online (Sandbox Code Playgroud)
所以看起来我可以存储的字符串有多长的上限.解决这种情况的最佳方法是什么?
我的最终目标是计算文件中最常见的字符,有点像Jack Halpern的"报纸中最常用的汉字"的现代版本.:)
如何从像这个网站的图像中提取元数据?我使用过exev2库,但与本网站相比,它只提供有限的数据.有更高级的图书馆吗?
我已经尝试过hacoir-metadata Python库.
Windows如何提取图像的细节(我们从属性中看到的)?
我想这样做,以便当我的程序启动时,它打印到stderr:
This is Program X v. 0.1.0 compiled on 20180110. Now listening on stdin,
quit with SIGINT (^C). EOF is ignored. For licensing information, read
LICENSE. To suppress this message, supply --quiet or --suppress-greeting
Run Code Online (Sandbox Code Playgroud)
在C/C++中,我将使用Makefile实现此目的,例如:
VERSION = 0.1.0
FLAGS = -Wall -pipe -O3 -funroll-loops -Wall -DVERSION="\"$(VERSION)\"" -DCOMPILED_AT="\"`date +%Y%m%d`\""
Run Code Online (Sandbox Code Playgroud)
然后,在源代码中,我会使用这些常量,因为我很高兴,也许是在调用fprintf.#ifdef当然,在检查它们是否确实存在之后.
如何在Rust中实现这一目标?我需要使用程序宏吗?我可以用cargo某种方式吗?
我知道env!("CARGO_PKG_VERSION")可以作为替代品VERSION,但是怎么样COMPILED_AT?
我发现产生的信息expect()对用户非常不友好.考虑以下简短示例......
use std::env;
fn main() {
let imagefn = env::args().skip(1).next().expect("Filename not provided.");
println!("{}", imagefn);
}
Run Code Online (Sandbox Code Playgroud)
那个错误:
thread 'main' panicked at 'Filename not provided.', libcore/option.rs:960:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Run Code Online (Sandbox Code Playgroud)
我发现expect()编写快速代码非常有用,但希望我能输出更像这样的东西:
Filename not provided.
Run Code Online (Sandbox Code Playgroud)
隐藏所有其他信息,除非我实际提供环境变量,我作为开发人员应该知道.我想我的问题是:
expect()这样做?expect()即使在发布版本中也输出不友好的消息?python ×5
rust ×3
algorithm ×1
bash ×1
bitmap ×1
codepages ×1
encoding ×1
image ×1
imagemagick ×1
immutability ×1
ip ×1
metadata ×1
mutable ×1
php ×1
python-3.x ×1
rust-cargo ×1
shift-jis ×1
twisted ×1
unix ×1
web-scraping ×1
wikipedia ×1