我在一本书中看到了这段代码,当我尝试实现它时,语法错误无效。
此代码基本上读取字典并写入txt文件..
main.py
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'])
data.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
错误:
语法错误:语法无效。
是否可以使用print语句编写文件。
答案 0 :(得分:2)
我猜你真的在使用2.x系列中的python。打印是builtin function in python 3 and a statement in python 2。如果您尝试使用2.x syntax打印到文件会发生什么?
print >>dbFile, key
要检查您的版本,请打开交互式python shell并执行
sys.version_info
我有2.7,所以我得到
sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0)
答案 1 :(得分:2)
您可以将其从使用打印更改为dbfile.write(key + "\n")
。更容易理解你想要完成的任务。
答案 2 :(得分:2)
如果您使用的是python 2.6或更高版本,可以尝试添加
from __future__ import print_function
答案 3 :(得分:0)
请忽略它..它只是一个打印声明..它不是一个写声明..我将删除这个线程,以便人们不会混淆。