0

このコードを本で見ましたが、実装しようとすると無効な構文エラーが発生します。

このコードは基本的に辞書を読み取り、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

4 に答える 4

2

Python 2.6以降を使用している場合は、追加してみてください

from __future__ import print_function
于 2012-06-01T22:35:34.693 に答える
2

2.x ファミリーの python を実際に使用していると思います。Print は、python 3 の組み込み関数であり、python 2 のステートメントです。2.x 構文を使用してファイルに出力しようとするとどうなりますか?

 print >>dbFile, key

バージョンを確認するには、インタラクティブな python シェルを開いて実行します。

 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 に答える
0

それを無視してください..それは単なる印刷ステートメントです..書き込みステートメントではありません..人々が混乱しないように、このスレッドを削除します.

于 2012-06-04T03:45:19.947 に答える