如果文本文件中的数据如下所示:
# this is a header
# and so is this
#
alligator 27.2 83.4
bear 23.9 90.2
cat 12.56 0.98
dog 15.97 0.88884
...
...
…我知道我可以使用以下代码块在(列出与数据行相对应的列表)中读取该数据:
^{pr2}$……但我的直觉告诉我,有一种更优雅的方式来完成这项任务。基本上,我希望逐行读入文件,忽略'#'s,并为命令行中的每个元素提供一个'format'(例如[“%s”、“%0.6f”、“%0.6f”、“%0.6f”、“%I”]或其他东西…我将始终事先知道这一点)。最好的做法是什么?在
输出:
^{pr2}$或使用itertools.islice跳过标题:
我不确定我完全理解格式化部分或你想用它做什么,但如果你想格式化使用str.格式公司名称:
^{4}$如果试图使用If语句忽略以
#
开头的行,则应使用str.startswith
:不确定您的问题中的哪一处表示要将数据写入文件,但如果您这样做:
最简单的方法是通过列表理解中的lambda或使用map函数的lambda
我更喜欢将逻辑放入一个函数并调用它,而不是使用lambda,就像padraiccunningham一样。在
^{pr2}$与其他两种方法相比,这种方法几乎可以控制逻辑。在
如果你想写在文件中间使用
fileinput module
。在几行就完成了
记住你打印的任何东西文件。所以你必须阅读和打印每一行,并修改你想修改的任何一行替换。还有使用}在那里放一个新行。在
print "asd",
结尾的,
很重要,因为它会阻止{现在你不看
lines starting with
}`。在所以加上条件。在
^{pr2}$相关问题 更多 >
编程相关推荐