我想解析一个名称存储在变量中的文件。
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:语法无效
答案 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()