Python 2.7 可以在python eval()中连接多个命令吗?

Python 2.7 可以在python eval()中连接多个命令吗?,python-2.7,Python 2.7,我想eval(open('file1').readline())并将这一行写入另一个文件,如:eval(open('file1').readline().write('file2')),但这显然不起作用,因为在写入之前必须先打开file2 那么,是否可以在eval()中连接命令 谢谢您可以在另一个函数调用中嵌套eval表达式,该函数调用将其结果写入另一个文件: open('file2', 'w').write(eval(open('file1').readline())) 但是像这样把这么多东

我想
eval(open('file1').readline())
并将这一行写入另一个文件,如:
eval(open('file1').readline().write('file2'))
,但这显然不起作用,因为在写入之前必须先打开
file2

那么,是否可以在
eval()
中连接命令


谢谢

您可以在另一个函数调用中嵌套
eval
表达式,该函数调用将其结果写入另一个文件:

open('file2', 'w').write(eval(open('file1').readline()))
但是像这样把这么多东西塞进一行通常是不好的。通常最好编写更详细的代码,这样更容易理解和调试。例如,如果某个函数调用出现异常,则很难判断是哪一部分导致了问题

这里有一个多语句版本,我认为在几乎所有方面都更好:

with open('file1') as file1:
    input_line = file1.readline()
output_line = eval(input_line)
with open('file2', 'w') as file2:
    file2.write(output_line)

如果您从这段代码的一部分中得到一个异常,那么很明显是哪个部分导致了它,因为单独的函数调用都在单独的行中。关闭打开的文件也更好,在不需要文件时(每个缩进块的末尾),使用
with
语句来完成。单行版本依赖Python垃圾收集器关闭文件,这可能需要比预期更长的时间。

是否要将
eval()的结果保存在第二个文件中?为什么要
eval
写入
的返回值?我猜你想
eval
你读的那一行,但是你应该这样做,然后在
eval
这一行之后再写文件。