Python print语句 - 写入文件

时间:2012-06-01 22:16:09

标签: python python-3.x

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

此代码基本上读取字典并写入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语句编写文件。

4 个答案:

答案 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)

请忽略它..它只是一个打印声明..它不是一个写声明..我将删除这个线程,以便人们不会混淆。