2012-06-01 130 views
0

我在一本书中看到了这段代码,当我尝试实现它时,出现无效的语法错误。Python打印语句 - 打入文件

此代码基本上读一本字典,并写入到一个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 

错误:

语法错误:无效的语法。

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

+7

_你在哪里得到那个语法错误? – sarnold

+4

你使用的是Python 2.x还是Python 3.x? –

回答

2

我猜你真的使用Python 2.x系列的Python。打印是builtin function in python 3 and a statement in python 2。如果您尝试使用2.x syntax打印到文件,会发生什么情况?

print >>dbFile, key 

要检查您的版本,打开一个交互式Python外壳,并做

sys.version_info 

我有2.7,所以我得到

sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0) 
+0

我从Oreily书中得到了这些。他们试图打印消息..不写入文件..我得到一个打印语句错误。 – user1050619

+0

@ user1050619:不,他们正在尝试使用print语句将其写入文件。 –

2

你可以只从使用打印到dbfile.write(key + "\n")改变。理解你想要完成的事情更容易。

2

如果你对Python的2.6或更新版本,您可以尝试添加

from __future__ import print_function 
+0

它为我工作,谢谢 – Ray

0

请忽略it..Its只是打印statement..Its不是写statetement..I将删除此线程,这样人们不会感到困惑。