【发布时间】:2009-11-11 01:04:18
【问题描述】:
在 Python 中:我怎么说:
line = line.partition('#' or 'tab')[0] ... do something with
我知道我能做到:
line = line.partition('#')[0] ... do something
但是制表符的代码是什么,我可以说#或制表符吗?
更新:我想说的是阅读每行的第一个单词,如果您阅读 # 则忽略该字符之后的所有内容(因为它是注释)。但后来我发现如果我在文件中有第一个单词标签#,那么它会将标签作为第一个单词的一部分读取。所以我想说,如果你读到一个标签或一个哈希,那么把这行当作评论。一种解决方法是在第一个单词而不是制表符之后放置一个空格。但它不是很优雅。我现在意识到 if 语句是不正确的,我试图将事情简化太多。上面现在是正确的,但我认为 Ned Batchelder 的方式是现在要走的路,但也许现在你知道我要做什么了。
【问题讨论】:
-
partition 总是返回一个包含 3 个项目的元组,所以你的 if 永远是 true
-
这是一个奇怪的问题,因为 string.partition() 返回一个由第一部分、分隔符和第二部分组成的 3 元组。你不会在 if 语句中那样使用它。更有可能存储结果然后检查是否 returnvalue[1] == ''
-
你想做什么?这段代码 sn-p 是不明智的。