描述读取文件

时间:2009-11-04 13:28:48

标签: python file-handling

不太确定如何说出这个问题,因此如果你不特别理解它,那么我可以再试一次。

我有一个名为 example.txt 的文件,我想将它导入我的Python程序。在这里,我将对其中包含的内容和其他不相关的内容进行一些计算。

而不是我导入这个文件,逐行浏览并提取我想要的信息..而Python可以代替吗?就像在,如果我正确地构造 .txt (无论它是由每行上的等号分隔的键/值对),是否有当前的Python'方式'它可以处理它所有我与之合作?

3 个答案:

答案 0 :(得分:4)

with open("example.txt") as f:
    for line in f:
        key, value = line.strip().split("=")
        do_something(key,value)
如果我理解正确的话,

就像一个起点。你需要Python 2.6或3.x.

另一个要查看的地方是可以解析逗号分隔值文件的csv模块 - 您可以告诉它使用=作为分隔符。这将抽象出前一个例子中的一些“手工作品” - 但似乎你的例子并不特别需要那种抽象。

另一个想法:

with open("example.txt") as f:
    d = dict([line.strip().split("=") for line in f])

现在这是简洁和pythonic:)

答案 1 :(得分:0)

for line in open("file")
    key, value = line.strip().split("=")
    key=key.strip() 
    value=value.strip() 
    do_something(key,value)

答案 2 :(得分:0)

还有另一种方法 - 你可以创建一个有效的python文件(让它成为列表,dict定义或其他任何东西),使用

读取其内容
f = open('file.txt', r)
content = f.read() #assuming file isn't too long

然后解析它:

parsedContent = eval(content)

您可以将任何环境传递给eval(请参阅docs),因此它可能无法访问您的全局变量和本地变量。这是 evil 并且错误,但是在小程序中,不会被分发,也不会从网络或所谓的恶意用户获取'file.txt' - 你可以使用它。