2

私はPythonが初めてで、コードの一部が非常に単純で、いくつかのステートメントが欠けていることを知っています。実際には、辞書からファイルに書き込む必要があります。このコードは実行されますが、dict の最後の項目のみがファイルに書き込まれます"heba6677..."。ご協力いただきありがとうございます。

ab={'engy':'011199887765',
    'wafa2':'87878857578',
    'heba':'6677553636'}
for name, mobile in ab.items():
    print ('Contact %s at %s' % (name, mobile))
    f=open('D:\glo.txt','w')
    f.write(name)
    f.write(mobile)
f.close()
4

2 に答える 2

7

ファイルに行を追加し続けたい場合は、ドキュメントaで説明されているように、モードでファイルを開きます。

for (name, mobile) in ab.iteritems():
    with open(...., "a") as f:
        print ('Contact %s at %s' % (name, mobile))
        f.write(name)
        f.write(mobile)

wモードとして使用writingすると、ファイルが上書きされます。

于 2012-09-26T10:16:53.607 に答える
2

モードでファイルを開くたびwに、以前の内容は消去されます。したがって、ループの前に一度だけ実行する必要があります。with何よりも、次のステートメントでそれを行います。

ab={'engy':'011199887765',
    'wafa2':'87878857578',
    'heba':'6677553636'}
with open('D:\glo.txt','w') as f:
    for name, mobile in ab.items():
        print ('Contact %s at %s' % (name, mobile))
        f.write(lis)
        f.write(mobile)

また、何があるかはわかりませんがlis、適切な場所にあると思います。lisコードは名前ではなく、数値のみをファイルに書き込むことに注意してください。lisループ内で変化しないため、各反復で同じになります。

于 2012-09-26T09:55:21.950 に答える