私は次のコードを持っています。両方のプラットフォームでログファイルを作成しますが、Windowsログファイルに書き出すだけです。事前Unix/Linuxではlogfileに出力を書き出しませんが、Windowsでは
1
A
答えて
3
で
import os
logdir = os.getenv("logs")
logfile = 'script_list.log'
path = (raw_input("Enter dir: "))
if os.name == "posix":
log = open("//".join([logdir,logfile]), 'w')
else:
log = open("\\".join([logdir,logfile]), 'w')
for dirpath, dirname, filenames in os.walk(path):
for filename in [f for f in filenames]:
if os.name == "posix":
log.write(str(dirpath)+ "//" + str(filename) + "\n")
else:
log.write(str(dirpath)+ "\\" + str(filename) + "\n")
print '\nYour logfile ' + logdir + '\\' + logfile + ' has been created'
おかげで私はあなたが、より良い
log=open(os.path.join(logdir, logfile), 'w')
...
for filename in filenames:
log.write(os.path.join(dirpath, filename)+'\n')
かと
if os.name == "posix":
log = open("//".join([logdir,logfile]), 'w')
else :
log = open("\\".join([logdir,logfile]), 'w')
...
for filename in [f for f in filenames]:
if os.name == "posix":
log.write(str(dirpath)+ "//" + str(filename) + "\n")
else:
log.write(str(dirpath)+ "\\" + str(filename) + "\n")
を交換使用することをお勧め
logfilename=os.path.join(logdir, logfile)
log=open(logfilename, 'w')
...
print "Your logfile", logfilename, "has been created."
@Lycha saysとして、ファイルをもう一度閉じてください。だからあなたのコンストラクトは
with open(logfilename, 'w') as log:
...
+0
パーフェクト、これはソートしました。私は2番目の提案を使いました。夢のように働く。みんなありがとう – geekcomputers
0
は、書き込み後のストリームをフラッシュしてください次のようになります。
log.flush()
また、(できれのtry-finally節を使用して)最後に、ファイルを閉じる必要があります。
関連する問題
- 1. log4j.xmlはファイルに出力を書き出しません
- 2. vmstatがファイルに出力を書き込んでいません
- 3. はできませんパイプ出力
- 4. は出力できませんDebug.WriteLine(「テスト」)
- 5. Windowsコマンドプロンプト(cmd.exe)で出力メッセージをリダイレクトできません
- 6. Windows用のbashで出力をパイプできません
- 7. ofstreamは出力ファイルを一貫して作成/書き出しませんC++
- 8. Capistranoはdeploy uglify-jsフックの出力を出力しますが、ファイルは書きません
- 9. ませ書誌出力ん
- 10. telegrafディスク入力はphusion/baseimageで出力に書き込みません
- 11. dataimport rawステータス出力をJsonに出力できません
- 12. C:fprintfを出力ファイルに出力できません
- 13. cmakeの出力をカラーで出力しますが、ファイルには出力しません
- 14. ファイルへの出力の書き込みはPythonでは機能しません
- 15. コンソールでは出力されますが、ページでは出力されません。
- 16. バッチコマンドをファイルに出力しますが、コンソールには出力しません
- 17. Powershellは情報をテキストファイルに出力しますが出力ペインには出力しません
- 18. Verilogの出力ファイルに32行すべての出力を書き込むことができません
- 19. 出力イテレータにコピーできません
- 20. テキストファイルに出力全体を書き込むことができません
- 21. Hadoop map-reducerは出力を書きません
- 22. プロセス出力は最後の行を書きません
- 23. Hadoop MapReduceは出力を書きません
- 24. データはIDEの側出力に書き込まれますが、クラスタには書き込まれません
- 25. ob_start()は大きな出力では機能しません
- 26. python heapq merge sortが出力ファイルに書き込めません
- 27. Windows 7 cmdはファイル名を出力しません。
- 28. pythonは最終出力をファイルに書き出します
- 29. ファイルに出力するときにPHPのカールはデータをダウンロードできませんが、標準出力に出力するときはOKです
- 30. 出力を生成できません
'os.path.join()' –
なぜ '/'の代わりに '//'を使用していますか? '\\'だけをエスケープする必要があります。 "//"は実際には2つの "/"を意味します。 – mgibsonbr
おそらく 'logging'モジュールが役に立ちます... – Gandaro