如何解析文件存储在变量中的文件名

时间:2013-08-01 15:22:43

标签: python

我想解析一个名称存储在变量中的文件。

log_file = archive_log
for line in print log_file:
    print line

此处archive_log文件包含已归档的文件列表。当我运行此代码for循环时,在archive_log上运行而不是在archive_log的内容上运行。所以我得到像

这样的输出
a
r
c
h
i
v
e
_
l
o
g

如何确保循环运行文件内容?这里我需要在变量中指定文件名,因为将来我必须根据日期计算文件名。

我正在运行python 2.4.3。出现以下错误:

档案“daily_archive.py”,      第31行打开(log_file)为f: ^ SyntaxError:语法无效

2 个答案:

答案 0 :(得分:2)

您所描述的内容可能是以下结果:

log_file = 'archive_log'
for line in log_file:
    print line

(您打印log_file字符串中的每个字符)

然而,看起来你想要这个:

log_file = 'archive_log'
with open(log_file) as f:
    for line in f:
        print line

请记住,路径是相对的,取决于您运行代码的位置(从哪里)。最好使用绝对路径。你可以使用例如。 os.path.join()根据文件名{({1}}获取绝对路径,其示例中的值为log_file)和脚本文件的路径('archive_log')。< / p>

编辑:以下是Python 2.4(Python 2.5 has support for with statement)的解决方案:

__file__

答案 1 :(得分:0)

这个问题没有提出,但我认为这就是OP的意思:

filename = 'archive_log'
file = open(filename, 'r')

for line in file.readlines()
  print line

file.close()