为了账号安全,请及时绑定邮箱和手机立即绑定

打开 2 个文件并将它们分配给 Python 3 中的 2 个集合

打开 2 个文件并将它们分配给 Python 3 中的 2 个集合

元芳怎么了 2023-04-25 16:32:56
我有一个代码,它获取 selenium 信息,我需要将此信息打印到 docx,但要通过模板。在这里,我借助 print() 获取信息(设置某些部分)史岱文森高中一般信息学校名称:Stuyvesant 高中校长:Mr. Eric Contreras校长电子邮件:ECONTRE@SCHOOLS.NYC.GOV类型:普通学校年级跨度:9-12地址:345 Chambers Street, New York, NY 10282我在控制台中打印此信息,但我需要将此信息打印到 docx。这是代码的一部分,我在这里打印:from selenium import webdriverfrom selenium.common.exceptions import NoSuchElementExceptionimport openpyxlimport docxfrom docx.shared import PtList = []wb = openpyxl.load_workbook('D:\INSPR\Rating_100_schools\Top-100.xlsx')sheet = wb['RI']tuple(sheet['A1':'A100']) # Get all cells from A1 to A100.for rowOfCellObjects in sheet['A1':'A100']:    for cellObj in rowOfCellObjects:        List.append(cellObj.value)School_list_result = []State = sheet.titledriver = webdriver.Chrome(executable_path='D:\chromedriver') #any pathdef check_xpath(xpath):        try:            element = driver.find_element_by_xpath(xpath)            School_list_result.append(element.text)        except NoSuchElementException:            School_list_result.append("No data.")    def check_text(partial_link_text):        try:            element_text = driver.find_element_by_partial_link_text(partial_link_text)            School_list_result.append(element_text.get_attribute("href"))        except NoSuchElementException:            School_list_result.append("No data.")            def check_click(clicker):        try:            element_click = driver.find_element_by_partial_link_text(clicker)            element_click.click()        except NoSuchElementException:            print("No click.")            我需要的是:不是通过模板将此结果打印到控制台,而是通过模板打印到 docx。还有一个:如果你知道如何不使用索引(比如:School_list_result[0]),请告诉我。
查看完整描述

2 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

只需将set()列表包裹起来。


def readfile(fn):

    with open(fn, 'r') as fh:

        return fh.read().splitlines()


diff = set(readfile("file1.txt")).difference(set(readfile("file2.txt")))


查看完整回答
反对 回复 2023-04-25
?
Helenr

TA贡献1780条经验 获得超4个赞

您可以申请set将列表当场转换为集合。所以这就足够了:


a_file = open(r'c:\a.csv', 'r')

b_file = open(r'c:\b.csv', 'r')


a_set = set(a_file.readlines())

b_set = set(b_file.readlines())


a_file.close()

b_file.close()


difference_list = a_set.difference(b_set)

但我也建议应用with语句来执行基本的文件操作(打开、关闭等),并确保在几乎任何异常的情况下它们都将被正确关闭。在这种情况下,代码将如下所示:


with open(r'c:\a.csv', 'r') as a_file, open(r'c:\b.csv', 'r') as b_file:

    a_set = set(a_file.readlines())

    b_set = set(b_file.readlines())


difference_list = a_set.difference(b_set)


查看完整回答
反对 回复 2023-04-25
  • 2 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信