我正在尝试整理一个简单的RSS小部件(对于我的wordpress博客),它将显示股票或市场列表及其当前价格.
我似乎无法在任何地方找到这个数据的API - 任何人都可以建议这样的事情(也许作为RSS提要?)
对于某些关键字的出现,观察不断增长的文件尾端的pythonic方法是什么?
在shell中我可能会说:
tail -f "$file" | grep "$string" | while read hit; do
#stuff
done
Run Code Online (Sandbox Code Playgroud) 如何重命名文件,将文件保存在同一目录中?
我有一个包含文件完整路径的字符串,以及一个包含新文件名(没有路径)的字符串,例如:
NSString *old_filepath = @"/Volumes/blah/myfilewithrubbishname.avi";
NSString *new_filename = @"My Correctly Named File.avi";
Run Code Online (Sandbox Code Playgroud)
我知道NSFileManager的movePath:toPath:handler:方法,但是我无法研究如何构造新文件的路径..
基本上我正在寻找相当于以下Python代码:
>>> import os
>>> old_filepath = "/Volumes/blah/myfilewithrubbishname.avi"
>>> new_filename = "My Correctly Named File.avi"
>>> dirname = os.path.split(old_filepath)[0]
>>> new_filepath = os.path.join(dirname, new_filename)
>>> print new_filepath
/Volumes/blah/My Correctly Named File.avi
>>> os.rename(old_filepath, new_filepath)
Run Code Online (Sandbox Code Playgroud) 我有一个解析电视剧集文件名的脚本(例如show.name.s01e02.avi),抓取剧集名称(来自www.thetvdb.com API)并自动将它们重命名为更好的名称(显示名称 - [01x02] ]的.avi)
该脚本工作正常,直到你尝试在具有Unicode显示名称的文件上使用它(我从未真正考虑过的事情,因为我拥有的所有文件都是英文的,所以大部分文件全部都在内[a-zA-Z0-9'\-])
如何允许正则表达式匹配重音字符等?目前正则表达式的配置部分看起来像..
config['valid_filename_chars'] = """0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!@£$%^&*()_+=-[]{}"'.,<>`~? """
config['valid_filename_chars_regex'] = re.escape(config['valid_filename_chars'])
config['name_parse'] = [
# foo_[s01]_[e01]
re.compile('''^([%s]+?)[ \._\-]\[[Ss]([0-9]+?)\]_\[[Ee]([0-9]+?)\]?[^\\/]*$'''% (config['valid_filename_chars_regex'])),
# foo.1x09*
re.compile('''^([%s]+?)[ \._\-]\[?([0-9]+)x([0-9]+)[^\\/]*$''' % (config['valid_filename_chars_regex'])),
# foo.s01.e01, foo.s01_e01
re.compile('''^([%s]+?)[ \._\-][Ss]([0-9]+)[\.\- ]?[Ee]([0-9]+)[^\\/]*$''' % (config['valid_filename_chars_regex'])),
# foo.103*
re.compile('''^([%s]+)[ \._\-]([0-9]{1})([0-9]{2})[\._ -][^\\/]*$''' % (config['valid_filename_chars_regex'])),
# foo.0103*
re.compile('''^([%s]+)[ \._\-]([0-9]{2})([0-9]{2,3})[\._ -][^\\/]*$''' % (config['valid_filename_chars_regex'])),
]
Run Code Online (Sandbox Code Playgroud) 这个问题出现在现实世界中,但我已将其翻译成更通用的"类似教科书"的表述.我怀疑它是NP,但我特别感兴趣的是知道它是否有名字或者是众所周知的,因为我认为我不能成为第一个遇到它的人.;-)
想象一下,有N位客人参加聚会.每位客人都可以将他/她的"招牌菜"带到聚会上,或者什么都不带.每位客人都喜欢或讨厌其他客人可能带来的每道菜(由于他们都是老朋友,所以这是事先知道的!),但他们都喜欢自己的菜肴.
有没有一个确定性的算法,不需要指数时间来找到满足约束的最小菜肴,所有客人都会找到至少一个他们喜欢的菜?我说"最小",但实际上可能有多种解决方案,如果可能的话我想知道它们.
或者,以更抽象的方式,想象一个方形矩阵,其中所有元素都是0或1,并且所有对角元素都是1.什么是最小的行集合,使得每个行的总和(或二进制OR)设置没有零?(行将是菜肴,列将是客人,1意味着客人喜欢菜,对角元素是1,因为每个人都喜欢他们自己的菜.)
这可以推广到非平方矩阵,或者通过去除diagonal = 1规则(尽管后者保证总是存在至少一个解).但我现在不关心这些案件......
我已经有一个程序通过详尽的搜索来解决它,并且对于大约20的N来说足够快,但它需要指数时间.我想我可能需要重复使用随机算法来找到更大的N值的足够好的解决方案.
添加
哇,谢谢你的快速回答!"设置封面",这就是我要找的名字.:)
可能重复:
如何在python中生成动态(参数化)单元测试?
有没有办法动态创建unittest测试用例?我试过以下..
class test_filenames(unittest.TestCase):
def setUp(self):
for category, testcases in files.items():
for testindex, curtest in enumerate(testcases):
def thetest():
parser = FileParser(curtest['input'])
theep = parser.parse()
self.assertEquals(theep.episodenumber, curtest['episodenumber'])
setattr(self, 'test_%s_%02d' % (category, testindex), thetest)
Run Code Online (Sandbox Code Playgroud)
..which正确地创建所有方法(它们显示dir()并且可以调用),但是unittest的测试检测器,也不nosetest执行它们("Ran 0 tests in ...")
因为我可能会问错误的问题 - 我想要实现的目标:
我有一个文件,包含测试数据,输入文件名列表和预期数据(简化为episodenumber上面的代码),存储在Python字典中.关键是类别,值是测试用例列表,例如..
test_cases = {}
test_cases['example_1'] = [
{'input': 'test.01',
'episodenumber': 1},
{'input': 'test.02',
'episodenumber': 2}
]
test_cases['example_2'] = [
{'input': 'another.123',
'episodenumber': 123},
{'input': 'test.e42',
'episodenumber': 32}
]
Run Code Online (Sandbox Code Playgroud)
目前我只是遍历所有数据,调用self.assertEquals每个测试.问题是,如果一个失败,我没有看到其余的失败,因为它们也被分组到一个测试中,当断言失败时中止. …
我有一个应用程序分成几个箱子。我想拒绝或允许所有箱子中的特定 lint。例如:
#![deny(clippy::print_stdout)]
Run Code Online (Sandbox Code Playgroud)
看来我必须将其添加到每个板条箱中的 lib.rs 中。
Cargo有一张票据允许以某种方式进行配置,但它已经开放了好几年,没有明确的结论。
是否有解决方法可以避免每个板条箱重复这些允许/拒绝/警告行?
我的一个想法是通过在工作区根目录include!创建一个,然后在每个板条箱的 lib.rs 中添加clippy_config.rs
include!("../../clippy_config.rs");
Run Code Online (Sandbox Code Playgroud)
然而这失败了
error: an inner attribute is not permitted in this context
--> app/src/../../clippy_config.rs:1:1
|
1 | #![deny(clippy::print_stdout)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them.
Run Code Online (Sandbox Code Playgroud)
由于同样的原因,我使用宏的另一个想法也不起作用。
除了编写外部脚本来修改 Rust 文件以自动执行复制之外,是否有一种简单的方法可以做到这一点?(正如描述 Embark Studio 设置的评论中所提到的)。
我想尝试Emacs,并希望尽可能给它最好的机会.
要做到这一点,似乎拥有一个好.emacs文件很重要.
我主要使用Mac OS X(所以我看过Aquamacs),我主要做Python编程,所以任何特别适用于此的东西都会很棒.
我正在考虑将Maven用于我管理的Java开源项目.
然而,在过去,Maven并不总是拥有最好的声誉.你现在对Maven有什么印象?
我想实现一个节点接口,基本上是一个DAG,每个节点在它的输入连接上执行操作,并输出一些东西(你可以连接到另一个节点)
一些示例应用:
作为第一个目标,我想拥有一个只有2个节点的图形应用程序.一个简单输出一个固定数字的"数字"和一个"加"节点,它取两个输入并输出两者之和.
正如人们已经回答的那样,我对如何在代码中表示数据有一个粗略的想法,例如在Python中寻找伪代码:
class Number:
def __init__(self, value):
self.value = value
def eval(self):
return self.value
class Add:
def __init__(self, input1, input2):
self.input1 = input1
self.input2 = input2
def eval(self):
return self.input1.eval() + self.input2.eval()
a = Number(20)
b = Number(72)
adder = Add(a, b)
print adder.eval()
Run Code Online (Sandbox Code Playgroud)
我如何围绕此包装自定义GUI?像下面的东西,但略少手绘!

我从哪里开始?我目前打算用Objective-C/Cocoa编写它,尽管我对其他语言的建议不仅仅是开放的.
python ×4
algorithm ×1
api ×1
cocoa ×1
dynamic ×1
emacs ×1
file ×1
java ×1
maven-2 ×1
np-complete ×1
objective-c ×1
open-source ×1
regex ×1
rust ×1
rust-clippy ×1
set ×1
tail ×1
unicode ×1
unit-testing ×1
wordpress ×1