我正在使用Programming Python学习Python,当我在Eclipse中运行本书中的一些示例时,会出现很多错误警告,我无法成功运行它们。但是当我在IDEL3中运行它们时,它们有效。有两个文件,一个是initdata.py,另一个是makefile.py。 这是makefile.py'代码:
dbfilename = 'people-file'
ENDDB = 'enddb.'
ENDREC = 'endrec.'
RECSEP = '=>'
def storeDbase(db, dbfilename=dbfilename):
"formatted dump of database to flat file"
dbfile = open(dbfilename, 'w')
for key in db:
print(key, file=dbfile)
for (name, value) in db[key].items():
print(name + RECSEP + repr(value), file=dbfile)
print(ENDREC, file=dbfile)
print(ENDDB, file=dbfile)
dbfile.close()
def loadDbase(dbfilename=dbfilename):
"parse data to reconstruct database"
dbfile = open(dbfilename)
import sys
sys.stdin = dbfile
db = {}
key = input()
while key != ENDDB:
rec = {}
field = input()
while field != ENDREC:
name, value = field.split(RECSEP)
rec[name] = eval(value)
field = input()
db[key] = rec
key = input()
return db
if __name__ == '__main__':
from initdata import db
storeDbase(db)
这是initdata.py的代码:
bob = {'name':'Bob Smith','age':42,'pay':30000,'job':'dev'}
sue ={'name':'Sue Jones','age':45,'pay':40000,'job':'hdw'}
tom = {'name':'Tom','age':50,'pay':0,'job':None}
db = {}
db['bob']=bob
db['sue']=sue
db['tom']=tom
if __name__=='__main__':
for key in db:
print(key ,'=>\n',db[key])
“来自initdata导入数据库”中始终存在错误警告,表示它是一个无法导入的导入:db。 但是当我运行这两个文件时,没有任何错误。所以,我有什么问题?我的操作系统是Ubuntu。
答案 0 :(得分:0)
initdata.py中的缩进看起来不对。
db['tom']=tom
if __name__=='__main__':
尝试取消整个if __name__...db[key])
阻止。