我想使用带有此库http://pythonhosted.org/dbf/的Python修改.dpf文件中的一列。
当我想要打印出一些列时,它可以正常工作。但是当我尝试修改列时,我收到错误
无法单独修改字段,但
除外with
或Process()
我的代码:
table = dbf.Table('./path/to/file.dbf')
table.open()
for record in table:
record.izo = sys.argv[2]
table.close()
在文档中,他们建议这样做
for record in Write(table):
但我也收到错误:
名称'Write'未定义 和
record.write_record(column=sys.argv[2])
还给我一个错误
write_record - 表
中没有这样的字段
谢谢!
答案 0 :(得分:2)
我对文档的状态表示歉意。以下是一些应该有效的选项:
table = dbf.Table('./path/to/file.dbf')
# Process will open and close a table if not already opened
for record in dbf.Process(table):
record.izo = sys.argv[2]
或
with dbf.Table('./path/to/file.dbf')
# with opens a table, closes when done
for record in table:
with record:
record.izo = sys.argv[2]
答案 1 :(得分:0)
几天来,我一直在尝试对dbf文件进行更改,并搜索和浏览了多个网站,该页面是唯一给我提供有效解决方案的页面。只是添加一些信息,以便任何人在这里都可以理解Ethan Furman共享的上述代码。
import dbf
table = dbf.Table('your_dbf_filename.dbf')
# Process will open and close a table if not already opened
for record in dbf.Process(table):
record.your_column_name = 'New_Value_of_that_column'
现在,由于这里没有提到条件,因此您将结束更新列的所有行。请记住,该语句将立即反映该列中的新值。因此,建议是在对该dbf文件进行任何编辑之前保存一个副本。 我还尝试了Ethan提到的第二种解决方案,但是它引发了一个错误,即“表”未定义。