小编Fre*_*nan的帖子

下载维基百科页面的完整历史记录

我想下载维基百科上一篇文章的完整修订历史记录,但遇到了障碍。

下载整篇维基百科文章,或者使用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 和更多的数据。

有没有预先构建的方法来执行此操作?(看来一定有。)

python wikipedia web-scraping

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

新的 Windows 10 放大镜使用什么算法?

Windows 10 中的新放大镜通过选中“启用位图平滑”创建非常有趣的结果。

这里使用的算法的名称是什么?我怎样才能取得这些令人印象深刻的结果?这个放大镜生成的矢量几乎完美到足以制作矢量 OTF 字体!我所知道的每种位图跟踪方法都不适用于像素艺术或像素字体。

选中“启用位图平滑”的放大镜窗口

字体示例

形状示例

与 Adob​​e Illustrator 专有位图追踪算法的比较:

与 Adob​​e Illustrator 的比较

algorithm bitmap vector-graphics image-scaling

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

如何在扭曲连接丢失后获取客户端IP地址

我知道我们可以在建立连接后获得客户端(主机)IP,因为那时我们将具有传输属性:

self.transport.getPeer()
Run Code Online (Sandbox Code Playgroud)

但是当它断开与服务器的连接时,如何在扭曲的TCP服务器中获取客户端的IP地址.

python ip twisted

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

编码☺为IBM-437失败,而其他有效字符如é成功

☺:

>>> 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'.我怎么能这样呢?

代码页437的图像.

python encoding codepages python-3.x

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

如何在 Rust 中使用 SHIFT-JIS 编码?

根据此 Github 问题,rust-encoding crate 缺少 SHIFT-JIS 支持。鉴于此,在 Rust 中解码 SHIFT-JIS 的最佳方法是什么?

character-encoding shift-jis rust

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

如何在将由 Bash 运行的脚本的 shebang (#!) 中设置环境变量?

或者,为什么这不起作用,假设您正确地将文件设置为可执行文件?(在我的系统上它只是挂起,但可以用 ^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)

unix bash

4
推荐指数
2
解决办法
1337
查看次数

为什么不将可变变量分配在一起而不被链接?

考虑以下:

>>> 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)

我认为这可能与不变性有关,但这种行为对我来说很奇怪.谁能解释为什么会发生这种情况?

python mutable immutability variable-assignment

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

读取6.9GB文件会导致分段错误

我正在尝试打开最新的日语维基百科数据库,以便在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的"报纸中最常用的汉字"的现代版本.:)

python

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

从PNG图像中提取元数据

如何从像这个网站的图像中提取元数据?我使用过exev2库,但与本网站相比,它只提供有限的数据.有更高级的图书馆吗?

我已经尝试过hacoir-metadata Python库.

Windows如何提取图像的细节(我们从属性中看到的)?

php metadata image imagemagick image-processing

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

如何在编译到Rust二进制文件期间编译在命令行上提供的字符串?

我想这样做,以便当我的程序启动时,它打印到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

rust rust-cargo

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

有没有办法让expect()输出更加用户友好的消息?

我发现产生的信息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)

隐藏所有其他信息,除非我实际提供环境变量,我作为开发人员应该知道.我想我的问题是:

  1. 有没有办法可以覆盖expect()这样做?
  2. 为什么expect()即使在发布版本中也输出不友好的消息?

rust

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