0

我在一本书中看到了这段代码,当我尝试实现它时,我得到了一个无效的语法错误。

此代码基本上读取字典并写入 txt 文件..

主文件

from Basics import data

dbfilename = 'people-file'
ENDDB  = 'enddb.'
ENDREC = 'endrec.'
RECSEP = '=>'


def storelist(db,dbfilename):
    print('In storelist function')
    dbfile = open(dbfilename, 'w')
    for key in db:
        print(key, file=dbfile)


    dbfile.close()


if __name__ == '__main__':
    print('In Main list-items=',data.people)
    storelist(data.people,dbfilename)
    #for key in data.people:   
    #   print('Values are', key['name'])

数据.py

bob={'name':'bobs mith','age':42,'salary':5000,'job':'software'}
sue={'name':'sue more','age':30,'salary':3000,'job':'hardware'}

people={}
people['bob'] = bob
people['sue'] = sue

错误:

语法错误:无效的语法。

是否可以使用打印语句编写文件。

4

4 回答 4

2

我猜你真的在使用 2.x 系列的 python。Print 是python 3 中的内置函数和 python 2 中的语句。如果您尝试使用2.x 语法打印到文件会发生什么?

 print >>dbFile, key

要检查您的版本,请打开交互式 python shell 并执行

 sys.version_info

我有 2.7,所以我得到

 sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0)
于 2012-06-01T22:20:59.130 回答
2

您可以将其从使用 print 更改为dbfile.write(key + "\n"). 更容易理解您要完成的工作。

于 2012-06-01T22:24:41.797 回答
2

如果您使用的是 python 2.6 或更高版本,您可以尝试添加

from __future__ import print_function
于 2012-06-01T22:35:34.693 回答
0

请忽略它..它只是一个打印语句..它不是一个写语句..我将删除这个线程,这样人们就不会感到困惑了。

于 2012-06-04T03:45:19.947 回答