我有一个简单的2行代码,我需要将输出写入文件。代码如下:
import os,sys
print next(os.walk('/var/lib/tomcat7/webapps/'))[1]
怎么做?
答案 0 :(得分:3)
使用 open()
方法打开文件,写信至write并close关闭它,如下所示:
import os,sys
with open('myfile','w') as f:
# note that i've applied str before writing next(...)[1] to file
f.write(str(next(os.walk('/var/lib/tomcat7/webapps/'))[1]))
有关如何处理python和Reading and Writing Files文件的更多信息,请参阅What is the python "with" statement designed for?教程。以便更好地理解 with 语句。
祝你好运!
答案 1 :(得分:2)
在Python 3中,您可以将file
参数用于print()
函数:
import os
with open('outfile', 'w') as outfile:
print(next(os.walk('/var/lib/tomcat7/webapps/'))[1], file=outfile)
可以节省您转换为字符串的麻烦,并在输出后添加新行。
如果你在python文件的顶部添加这个导入,那么在Python 2中也是如此:
from __future__ import print_function
同样在Python 2中,您可以使用“print chevron”语法(即如果您不添加上述导入):
with open('outfile', 'w') as outfile:
print >>outfile, next(os.walk('/var/lib/tomcat7/webapps/'))[1]
使用print >>
也会在每次打印结束时添加一个新行。
在任何Python版本中,您都可以使用file.write()
:
with open('outfile', 'w') as outfile:
outfile.write('{!r}\n'.format(next(os.walk('/var/lib/tomcat7/webapps/'))[1]))
要求您显式转换为字符串并显式添加新行。
我认为第一种选择是最好的。