【问题标题】:How to find the eof of a Visual Foxpro dbf file in python?如何在 python 中找到 Visual Foxpro dbf 文件的 eof?
【发布时间】:2020-06-16 15:38:58
【问题描述】:

所以我在 python 中打开了一个可视的 foxpro dbf 文件。我正在尝试发表声明:

    if eof(): 
       Do something
    else:
       Do something

我记得 Python 3 不使用 Eof,所以有什么解决方案可以知道我是否到达文件末尾?

这是我打开我的 dbf 文件的地方,我的 for 循环循环通过 dbf 文件,但我希望它在循环之前可以先查看它是否是 eof。

    mhvupload_table = DBF('C:\Sonichr\\mhvupload.DBF', recfactory=None,load =True,ignore_missing_memofile=True)
    for mhvupload_rec in mhvupload_table:

【问题讨论】:

  • 当你的“for ... in ...”循环结束时,你会在EOF,不是吗?
  • 我不使用 Python,也不知道您使用的是哪个库,但是带有 DBF() 的 Pyhton 库之一具有 Eof。即:table.Eof.
  • 是的,我会在我的 for 循环结束时处于 eof,它是什么 dbf?
  • 这是一个问题还是你的意思是你理解了?
  • 我理解的是第一部分而不是第二部分。

标签: python python-3.x visual-foxpro


【解决方案1】:

我不明白你不明白的。我不知道 Python,但无论如何我尝试了这个并且完全按照我说的那样工作:

from dbfread import DBF
table = DBF('C:/Program Files (x86)/Microsoft Visual FoxPro 9/Samples/Northwind/Customers.dbf')


def DoIfNotEof(object):
    print(object)

def DoIfEof():
    print("\nEnd Of File is reached. Going to sleep.")

for record in table:
    DoIfNotEof(record)
DoIfEof()

正如我所见,dbfread 没有 100% 正确读取(剥离长字段名称),但仍然可以正常工作。可能有一个设置或什么的。尝试访问DaboDev。那些家伙是前 VFP 开发人员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多