[英]Reading text from multiple html files and consolidate into a different html file python script
我正在编写一个python脚本,在该脚本中将运行一个循环,并在多个目录中使用名称为'_CriteriaOutput.html'的特定html页面。 每个目录包含多个html文件和带有上述字符串的4-5个html文件。 我想做的是读取具有_CriteriaOutput.html名称的这些html文件,并将其合并为另一个html文件。 我将在下面给出我的代码(到目前为止我所做的一切)。 这段代码读取的html文件的源代码对我来说毫无用处。 我只想要文字(如果html文件中有文字)
import os
import fileinput
NightlyLogs = r'C:/Users/<user>/Desktop/Nightly_Logs/2015_07_16-0940'
dir = [fol for fol in os.listdir(NightlyLogs) if os.path.isdir(os.path.join(NightlyLogs, fol))]
dir = sorted(dir)
for folder in dir:
HtmlLoc = r'%s/%s' %(NightlyLogs, folder)
abc = [file for file in os.listdir(HtmlLoc) if file.endswith('_CriteriaOutput.html')]
for one in abc:
HtmlFile = r'%s/%s' %(HtmlLoc, one)
open_file = open(HtmlFile, 'r')
print open_file.read()
NightlyLogs是一个包含带有CL(更改列表)名称(例如876564或865664等)的文件夹的位置。 每个HTML文件(例如A_CriteriaOutput.html或B_CriteriaOutput.html名称)都包含特定系列的信息(比如说A或B或C等),每个具有特定CL名称的文件夹都包含类似的_CriteriaOutput.html文件,其中仅包含该CL的信息。 我想制作一个表,其中CL为列,A,B,C,D,E为行,其中将包含该特定系列的信息。 我已尝试具体说明,但如果您认为缺少某些信息,请帮助我学习。 我会尽力提供尽可能多的信息。 谢谢。
所以你的问题是
我想制作一个表,其中CL为列,A,B,C,D,E为行,其中将包含该特定系列的信息。
像这样吗
876564 | 865664 | ...
A | ... | ... | ...
B | ... | ... | ...
如果我正确地读你的问题,变更名称(876564,...)是文件夹名称和A,B,......是文件名的一部分,之前_CriteriaOutput.html
。
首先,我将以与您类似的方式从所有文件中收集数据,最后,您可以根据需要打印它们。
import os
import fileinput
def pretty_print(change_list):
change_names = []
for category_name, category_list in sorted(change_list.items()):
for change_name in category_list.keys():
if change_name not in change_names: change_names.append(change_name)
header = ['']
header.extend(change_names)
list_of_lists = []
list_of_lists.append(header)
for category, category_list in sorted(change_list.items()):
titles = [category]
for name in change_names:
try:
titles.append(category_list[name])
except KeyError:
titles.append('-')
list_of_lists.append(titles)
for line in list_of_lists:
print '\t'.join(line)
change_list = {}
NightlyLogs = r'C:/Users/<user>/Desktop/Nightly_Logs/2015_07_16-0940'
dir = [fol for fol in os.listdir(NightlyLogs) if os.path.isdir(os.path.join(NightlyLogs, fol))]
dir = sorted(dir)
for folder in dir:
HtmlLoc = r'%s/%s' %(NightlyLogs, folder)
abc = [file for file in os.listdir(HtmlLoc) if file.endswith('_CriteriaOutput.html')]
for one in abc:
change_name = one.split('_')[0]
if change_name not in change_list:
change_list[change_name] = {}
HtmlFile = r'%s/%s' %(HtmlLoc, one)
open_file = open(HtmlFile, 'r')
file_content = open_file.read()
print change_name, '|', folder, '|', file_content
change_list[change_name][folder] = file_content
print '\nTable of changes:'
pretty_print(change_list)
一些示例数据的输出(首先在读取时打印文件/文件夹名称/内容,然后使用pretty_print()
来打印表):
A | 876564 | foo
B | 876564 | foo B
A | 876565 | foobar
B | 876565 | foo
A | 876566 | bar
C | 876566 | bar C
Table of changes:
876564 876565 876566
A foo foobar bar
B foo B foo -
C - - bar C
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.