【问题标题】:Global file pointer?全局文件指针?
【发布时间】: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


【解决方案1】:

如果你需要告诉和设置你在文件中的位置,使用 file.seek() 和 file.tell()

如需更多帮助,请提供完整示例,以便我们查看您的实际问题。对我来说,它在 Windows 7 上通过 python 3.4.3 中的文件位置进行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多