我正在尝试定义一个函数,以便它只包含一部分with语句。例如,它将包括由#####。
截断的部分#####
with open(filename,'r') as fh:
contentall = fh.read().replace('\n', '')
contentall = contentall.upper()
print contentall
#####
i = contentall.count(">")
print i
我的问题是with
语句中仍有一些我不想要的功能。这可以在不创建两个不同的with
语句的情况下完成吗?
答案 0 :(得分:2)
没有。您可以将上下文管理器作为参数传递给第二个函数,但是您不能在两个函数定义之间共享上下文管理器。
答案 1 :(得分:2)
你能不能这样做
def getContent(filename):
with open(filename,'r') as fh:
contentall = fh.read().replace('\n', '')
contentall = contentall.upper()
return contentall
contentall = getContent(filename)
print contentall
i = contentall.count(">")
print i
答案 2 :(得分:0)
您可以使用变量来启用或禁用计数行为:
def contentFunc(filename, countBool):
with open(filename, 'r') as fh:
contentall = fh.read().replace('\n',' ').upper()
print contentall
if countBool == True:
print contentall.count(">")