首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >读取CSV,如果文本匹配,则打开具有匹配文件名的html文件,并在文本中复制。

读取CSV,如果文本匹配,则打开具有匹配文件名的html文件,并在文本中复制。
EN

Stack Overflow用户
提问于 2019-11-13 11:25:04
回答 1查看 128关注 0票数 3

好吧,我想我只是错过了连接器,我对python非常陌生。

目标:阅读CSV

读取目录中的所有文件名

如果索引(X)处的一行=目录中的文件名,则

打开HTML文件,用HTML文件中的文本替换索引(X)处的文本

目前为止的代码:

代码语言:javascript
运行
AI代码解释
复制
import fileinput
import csv
import os
import sys
import glob
from bs4 import BeautifulSoup

htmlfiles_path = "c:\\somedirectory\\" #path to directory containing the html files
filename_search = glob.glob("c:\\somedirectory\\*.HTM") #get list of filenames

#open csv

with open ('content.csv', mode='rt') as content_file:
    reader = csv.reader (content_file, delimiter=',')
    for row in reader:
        for field in row:
            if filename_search(some matching logic i am stuck on):
                for htmlcontentfile in glob.glob(os.path.join(path, ".HTM")):
                    markup(htmlcontentfile)
                    soup = BeatifulSoup(open(markup, "r").read())
                        content_file.write(soup.get_text())
                #i think something else goes here

我让csv阅读器开始工作,而glob则拉出文件名列表,在连接这些文件时遇到了一些问题。任何帮助都会很棒。

我查找了其他问题,其中一些代码是基于这个问题的,但是我没有在python中找到应对这个挑战的任何东西。如果有,把我引向正确的方向!

EDIT1:我在代码中打开的csv中使用"wt“。但那不是它被卡住的地方。

我有一个装满文件的文件夹。示例:

内容/d100.htm

内容/d101q.htm

内容/d102s.htm

以及CSV:

示例CSV

CSV档案:

标题名称位置

加州总统d 100.html

目标:打开csv,在“内容”文件夹中的任何文件的位置下查找匹配项。

如果找到匹配,打开相应的HTM文件,只解析文本。

将csv中的字段替换为文件的文本内容

这有意义吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-02 07:19:57

答案:

@barny如果我没有运行代码,我就不会在这里发帖。我很抱歉误解了我要找的东西。

无论如何,我通过稍微修改问题陈述并使用Excel来完成它来解决这个问题。

最初的要求:

CSV

文本/答案/目标文件内容

一些文本\引用文件001.htm \ some

其他一些文本呢引用文件002.htm \ some

找到文件,并将内容解析到它旁边的列。

略为改变的问题:

将所有htm文件解析为csv,并列出它们各自的文件名。然后使用Excel来匹配内容。

Excel没有让BSoup或Python进行匹配的工作,而是已经有了一个函数,index(match())可以执行我的请求的第二部分。因此,我让Python和Bsoup打开每个HTML文件,并将其放入CSV中。我还在另一列中带了一个长的文件名。就像这样:

文件:

内容/001.htm

内容/002.htm

内容/003.htm

预期CSV产出格式:

HTML文件的内容--文件名

代码:

代码语言:javascript
运行
AI代码解释
复制
import fileinput
import csv
import os
import sys
import glob
from bs4 import BeautifulSoup

path = "<the path>"


def main():
   for filepath in glob.glob(os.path.join('<the path>', '*.HTM')): #find folder containing html files 
    with open(filepath) as f:
        contentstuff = f.read() #find an html file, and read it
        soup = BeautifulSoup(contentstuff, "html.parser") #parse the html out
        with open (path + '\\htmlpages.csv', 'a', encoding='utf-8', newline='') as content_file:
            writer = csv.writer (content_file, delimiter=',') #start writer for file content to CSV
            fp = filepath[-12:] #trim the file name to necessary name
            for body_tag in soup.find_all('body'):
                bodye = (body_tag.text.replace("\t", "").replace("\n", "")) #deal with necessary formatting between Bsoup and Excel
                print(bodye) #show me the work
                writer.writerow([bodye, fp])  #do the actual writing

内容在CSV中之后,我使用了一个索引(match())来对我的核心文件中的文件名和新的CSV。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58844190

复制
相关文章
easy的jsp的增删改查在一个jsp页面上
easy的jsp的增删改查在一个jsp页面上
Java架构师必看
2021/05/14
4.7K0
直接在jsp页面上使用flex标签
http://download.macromedia.com/pub/labs/flex2_tag_library_jsp/flex2_tag_library_for_jsp.zip
一笠风雨任生平
2019/08/02
8490
springboot+jsp jsp页面在WEB-INF
项目结构 application.yml spring: mvc: view: #jsp页面前缀 prefix: /WEB-INF/ #jsp页面后
用户5899361
2020/12/07
14.8K0
springboot+jsp jsp页面在WEB-INF
jsp跳转jsp----------和------------jsp跳转servlet跳转jsp
2.也可以在上面先得到前一个jsp页面传来的参数,再讲参数放到request或者其他域中, 然后使用${username}得到
2020/10/23
21.2K0
springboot+jsp jsp页面在WEB-INF下
spring: mvc: view: #jsp页面前缀 prefix: /WEB-INF/ #jsp页面后缀 suffix: .jsp #静态资源位置 static-path-pattern: /webapp/** resources: static-locations: classpath:/webapp
用户5899361
2019/07/25
7K0
JSP基础--JSP入门
JSP(Java Server Pages)是JavaWeb服务器端的动态资源。它与html页面的作用是相同的,显示数据和获取数据。
eadela
2019/09/29
16.6K0
JSP基础--JSP入门
JSP二:掌握JSP
1、String getParameter(String key) 获取客户端传来的参数。
乐心湖
2020/07/31
19.1K0
JSP二:掌握JSP
JSP一:理解JSP
JSP 本质上就是⼀个 Servlet,JSP 主要负责与⽤户交互,将最终的界⾯呈现给⽤户。
乐心湖
2020/07/31
17.2K0
JSP一:理解JSP
JavaWeb——JSP入门学习(JSP基本概念、JSP脚本、JSP内置对象)
本章内容只对JSP内容做入门介绍,是为了会话技术的Cookie和Session内容的承接,后续再写文章详细介绍JSP。
Winter_world
2020/09/25
15.3K0
JavaWeb——JSP入门学习(JSP基本概念、JSP脚本、JSP内置对象)
jsp web应用开发_JSP页面
1. 动态网页是指服务器端运行的程序或者网页,它们会随不同客户,不同时间,返回不同的内容。
全栈程序员站长
2022/09/27
17.7K0
JSP
window下Tomcat的下载安装及配置 1、安装 2、基本语法 3、项目导出及部署 4、JSP注释 1、安装 绿色软件,下载解压即安装成功。 安装目录: bin:存放启动和关闭tomcat的脚本 conf:存放tomcat服务器的各种配置文件 lib:存放tomcat的依赖jar包 logs:存放tomcat执行时生成的日志文件 temp:存放一些临时文件 webapps:存放web应用 work:存放一些中间文件 LICENSE NOTTICE tomcat.ico Uninstall.exe配置环
一点儿也不潇洒
2018/08/07
9.8K0
JSP
它是在传统的网页HTML文件(*.htm,*.html)中插人Java程序段和JSP标记
木瓜煲鸡脚
2019/08/22
11.3K0
JSP
jsp
之前聊过用java处理web请求,处理cookie和session等等,但是唯独没有提及如何返回信息。作为一个web程序,肯定需要使用HTML作为用户界面,这个界面需要由服务端返回。返回信息可以使用HttpResponse中的OutputStream对象来写入数据。但是既要在里面写入HTML,又要写入相应的值,造成程序很难编写,同时HTML代码长了也不容易维护。我们需要一种机制来专门处理返回给浏览器的信息。JSP就是用来专门处理这种需求的。
Masimaro
2019/11/18
11K0
jsp 实栗 jsp + jdbc 登录
一个表单页,输入用户登录和密码,然后信息提交到jsp页面进行验证,如果可以服务器跳转到登录成功页,失败,跳转到错误页
mySoul
2019/03/10
9.2K0
[javaEE] jsp入门
生成一个xxx_jsp.java的Servlet文件,jsp的脚本片段放在了_jspService()方法里面
唯一Chat
2019/09/10
5K0
JSP 语法
脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。(其中声明的变量为局部变量)
希希里之海
2018/08/10
5.9K0
JSP语法
① 注释元素 (Comments Elements) 1. <!-- comment [<%= expression >] --> 标准的HTML注释。JSP容器会将该注释发往客户端浏览器,但不在浏览器中显示,可以在HTML源文件中查看。 comment - 注释内容 expression - 可选的java表达式,JSP容器会对表达式求值并将结果作为注释内容发往客户端 2. <%-- comment --%> JSP注释,JSP容器不会对该形式的注释进行编译,也不会将它发
用户1112962
2018/07/04
3.2K0
jsp 技术
JSP(全称 Java Server Pages)是由 Sun 公司专门为了解决动态生成 HTML 文档的技术。
一个风轻云淡
2022/11/15
3.2K0
jsp 技术
JSP总结
language属性:用来设置JSP页面使用的语言,默认值是java,而且只有一个值就是java
一头小山猪
2020/06/15
3K0
JSP学习
参考知乎:https://www.zhihu.com/question/37962386/answer/87758781
杨肆月
2019/08/15
4.4K0
JSP学习

相似问题

JSP动态包含标记

11

JSP为JSP标记库提供动态值

23

JSP动态更改包含页

32

jsp -在jsp页面上显示tomcat配置

20

其他JSP页在同一jsp页中打开

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档