如何在记录列表和数组时插入换行符?
How to insert newline while logging lists and arrays?
我正在尝试使用 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)
这让我在日志文件中以单行形式输出。
输出
[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)))
使用标准 Pretty Print 模块:
from pprint import pformat
logging.info('Files in list:\n%s', pformat(file_list))
输出示例:
[2015-03-14 14:23:47] INFO Files in list:
['./tmpvYWsRB.png',
'./Log.log',
'./tmpCG2Dn2',
'./ tmp7I36mh.png',
要仅打印文件名,请按照 user4815162342 的建议使用标准 os.path.basename。
我正在尝试使用 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)
这让我在日志文件中以单行形式输出。
输出
[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)))
使用标准 Pretty Print 模块:
from pprint import pformat
logging.info('Files in list:\n%s', pformat(file_list))
输出示例:
[2015-03-14 14:23:47] INFO Files in list:
['./tmpvYWsRB.png',
'./Log.log',
'./tmpCG2Dn2',
'./ tmp7I36mh.png',
要仅打印文件名,请按照 user4815162342 的建议使用标准 os.path.basename。