小编val*_*s21的帖子

Python/Bash - 获取带有转义字符的文件名

如何将带有空格、括号等的文件名解析为变量?前任。

'Album Artist - Song name (feat Musician) [Year]'
Run Code Online (Sandbox Code Playgroud)

'Album\ Artist\ \- Song\ name\ \(feat\ Musician\)\ \[Year\]'
Run Code Online (Sandbox Code Playgroud)

我得到了正确的格式re.escape(filename)。但是,如果我将打印内容存储re.escape到一个变量中,它会反转为初始命名。我知道我可以使用这个"string".replace('x', 'y')方法。但它对我来说并不安全。

有谁知道我如何解决这个问题或解决这个问题?顺便说一句,使用 Python 3.5.3。

编辑示例代码:

>>> import re 
>>> # this is an example array in the format how my filenames are named stored in files                                                                  >>> files = ['AA - BB (CC) [DD]', 'EE - FF (GG) [HH]', 'II - JJ (KK) [LL]']
>>> for f in files:
...     print(f)
...
AA - BB …
Run Code Online (Sandbox Code Playgroud)

python string bash shell rename

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

SequenceMatcher - 找出两个或多个数据列表中最相似的两个元素

我试图将一组字符串与一组已定义的字符串进行比较。例如,您要查找一封信件的收件人,该信件的文本是通过 OCR 数字化的。

有一个地址数组,其中包含字典作为元素。每个元素都是唯一的,包含 ID、名称、街道、邮政编码和城市。此列表将有 1000 个条目。

由于 OCR 扫描的文本可能不准确,我们需要找到与包含地址的列表最匹配的字符串候选者。

文本长度为 750 字。我们通过使用适当的过滤器函数来减少单词的数量,该函数首先按空格分割,从每个元素中剥离更多的空格,删除所有长度小于 5 个字符的单词并删除重复项;结果列表有 200 字长。

由于每个收件人有 4 个字符串(姓名街道、邮政编码和城市),其余字母长度为 200 个单词,因此我的比较必须运行 4 * 1000 * 200 = 800'000 次。

我使用 python 取得了中等成功。已正确找到匹配项。但是,该算法需要很长时间来处理大量字母(每 1500 个字母最多 50 小时)。列表理解已被应用。有没有办法正确(而不是不必要的)实现多线程?如果此应用程序需要在低规格服务器上运行怎么办?我的 6 核 CPU 没有抱怨这些任务,但是,我不知道在一个小的 AWS 实例上处理大量文档需要多少时间。

>> len(addressees)
1000
>> addressees[0]
{"Name": "John Doe", "Zip": 12345, "Street": "Boulevard of broken dreams 2", "City": "Stockholm"}
>> letter[:5] # already filtered
["Insurance", "Taxation", "Identification", "1592212", "St0ckhlm", "Mozart"]
>> from difflib import SequenceMatcher
>> def get_similarity_per_element(addressees, …
Run Code Online (Sandbox Code Playgroud)

python algorithm difflib sequencematcher python-3.x

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

在 C# 中从 Rust DLL 获取 UTF-8 编码的字符串

我找到了很多关于 C# 中 Rust DLL 实现的 US-ANSI 字符串的信息,但这并不能解决 UTF-8 编码字符串的任何问题。

\n\n

例如,"Br\xc3\xb6tchen"一旦在 C# 中调用,就会产生"Br\xc3\x83\xc2\xb6tchen".

\n\n

\n\n
use std::os::raw::c_char;\nuse std::ffi::CString;\n\n#[no_mangle]\npub extern fn string_test() -> *mut c_char {\n    let c_to_print = CString::new("Br\xc3\xb6tchen")\n        .expect("CString::new failed!");\n    let r = c_to_print;\n    r.into_raw()  \n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

C#

\n\n
[DllImport(@"C:\\Users\\User\\source\\repos\\testlib\\target\\debug\\testlib.dll")]\nprivate static extern IntPtr string_test();\n\npublic static void run()\n{\n    var s = string_test();\n    var res = Marshal.PtrToStringAnsi(s);\n    // var res = Marshal.PtrToStringUni(s);\n    // var res = Marshal.PtrToStringAuto(s);\n    // Are resulting in: ????n\n    Console.WriteLine(res); // prints …
Run Code Online (Sandbox Code Playgroud)

c# string dll utf-8 rust

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

在haskell中使用列表理解和两个变量

有人知道如何用haskell中的两个变量进行列表理解吗?

恩.

[ x * y  | x <- [1..10]  y <- [1..10]]
Run Code Online (Sandbox Code Playgroud)

它应该导致

[1,4,9,16,25,36,49,64,81,100]
Run Code Online (Sandbox Code Playgroud)

但它实际上是以ghci收益的

<interactive>:13:23-24: error:
    parse error on input ‘<-’
    Perhaps this statement should be within a 'do' block?
Run Code Online (Sandbox Code Playgroud)

haskell functional-programming list-comprehension

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