我总是使用with
语句打开和写入文件:
with open('file_path', 'w') as handle:
print >>handle, my_stuff
然而,有一种情况下我需要更灵活,如果提供了sys.stdout(或其他类型的流),我需要能够写入它,而不是文件路径:
因此,我的问题是:是否有一种方法可以同时将with
语句用于实际文件和sys.stdout
?
请注意,我可以使用以下代码,但我认为这违反了使用with
的目的:
if file_path != None:
outputHandle = open(file_path, 'w')
else:
outputHandle = sys.stdout
with outputHandle as handle:
print >>handle, my_stuff
if
和else
部分,然后只需使用if file_name
:) 无论如何,我用is not
解决了它 :) - thefourtheyewriter = open(file_name, "w")
而不是writer = open("Output.txt", "w")
,但回答很好! - GermanK