【发布时间】:2015-08-11 16:30:07
【问题描述】:
目前我的代码设置了从单个文件读取的多个函数。我试图通过使用全局文件指针来简化事情,但没有成功:
file = open('filename')
def A():
global file
line = file.readline()
...
B()
...
line = file.readline()
def B():
global file
line = file.readline()
...
在上面的例子中,我的目标是用 A 读几行,用 B 读几行,然后让 A 从 B 停止的地方继续。但是,A 中的 readline() 调用仍保留在其原始位置。对于我正在尝试做的事情,这可以使用全局变量吗?
【问题讨论】:
-
它对我来说很好用。你能举一个实际的例子来说明这个问题吗?
-
那么你的意思是,如果 filename 是一个三行文件,
A读取第一行,B读取第二行,然后A再次读取第二行而不是读取第三行?我觉得很难相信。 (此外,看起来没有任何东西阻止您将file变量作为参数传递给每个函数。那会“简化事情”。) -
我可以确认这不会发生,你能显示你的实际代码和输入吗?一定是发生了其他事情。
-
不相关,但
global file不是必需的,因为您没有尝试重新分配名称file。 -
哇哦!我的新手错误。我使用while循环检查A()中的新行,但忘记更新我正在检查的行。一旦我添加了修复程序,代码就会按预期工作。
标签: python file global readline