Pythonのロギングモジュールを使用して、リストをログファイルに出力しようとしています。私が使用したコードは次のとおりです。
import logging
import os
logging.basicConfig(filename = 'Log.log', level = logging.DEBUG, filemode = 'w', format = '%(asctime)s \t %(levelname)s \t %(message)s', datefmt="[%Y-%m-%d %H:%M:%S]")
file_list = []
for root, directories, files in os.walk('./Directory'):
files = [f for f in files]
for file in files:
file_list.append(os.path.join(root, file))
logging.info('Files in list: %s', file_list)
これにより、ログファイルの出力が1行になります。
出力
[2015-03-14 11:41:53] INFO Files in list: ['./Directory/Subdirectory 1/file_a.dat', './Directory/Subdirectory 1/file_1b.dat', './Directory/Subdirectory 1/Subdirectory 11/file_11a.dat', './Directory/Subdirectory 1/Subdirectory 11/Subdirectory 111/file_111a.dat', './Directory/Subdirectory 2/Subdirectory 22/Subdirectory 221/file_221a.dat', './Directory/Subdirectory 2/Subdirectory 22/Subdirectory 221/file_221b.dat', './Directory/Subdirectory 2/Subdirectory 22/Subdirectory 221/file_221c.dat']
私が必要としているのは、新しい行のリストにあるファイル名だけです。
必要な出力
[2015-03-14 11:41:53] INFO Files in list: file_a.dat
file_1b.dat
file_11a.dat
file_111a.dat
file_221a.dat
file_221b.dat
file_221c.dat
これはPythonでどのように行うことができますか?
'\n'.join
区切り文字として改行を使用し、ディレクトリ名を削除するジェネレータ式を使用して文字列をマージするために使用します。
logging.info('Files in list: %s', '\n'.join(os.path.basename(f)
for f in file_list)))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加