当前位置: 首页 > news >正文

python文件操作与正则表达式综合练习

问题:读取从网页中国城市大全保存到本地的html文件,从文件中提取中国城市名称并写入新创建的csv文件中,要求csv文件中每个单元格为一个城市。源文件已提供

第一步我们打开网页文件https://download.csdn.net/download/cpluspluszz/91337643就会的到

我们右键页面点击‘’查看网页源代码‘’可以看见源代码

我们可以右击可以把代码保存到本地,开始用代码完成任务

先导入re正则表达式库

import re

打开html文件与我们将要把城市写入的文件f2,“w”表示本地有该名称的文件就覆盖写,没有就创建写

f1=open('中国城市名称大全.html','r',encoding="UTF-8")
f2=open('城市大全.csv','w')

读取HTML文件中的所有内容在f中,声明一个列表ls用于存取我们获取的城市字符串,利用正则表达式中findall()函数提取字符串,我们可以在文件中的城市处观察到字符格式,参数为'<div class="para" label-module="para">(.+)</div>'表示匹配<div class="para" label-module="para">开头,中间任意字符至少一个,到后面</div>的格式。

f=f1.read()
ls=[]
ls=re.findall('<div class="para" label-module="para">(.+)</div>',f)

打印ls我们会发现某些城市后面会有</div>,例如

平顶山市 卫辉市 辉县市 舞钢市 新密市 孟州市 沁阳市 郏县</div>,我们需要字符串切割
ls[8]=ls[8][:-4]

我们的任务是把字符串写入csv文件中,写入csv的字符串要字符后面有逗号,我们用正则表达式sub函数替换掉原字符串中空格为,并复制给原列表,如果只是进行line =re.sub(' ',',',line),是没有对原字符串数组操作的,这个就差将字符串写入csv文件中了

num=0
for line in ls:ls[num]=re.sub(' ',',',line)num+=1

遍历每个列表的每个元素,用文件操作函数write一个一个将元素写入csv文件,这里换行符可加可不加,最后的完成任务。

for x in ls:f2.write(x+'\n')
f1.close()
f2.close()

完整代码

import re
f1=open('中国城市名称大全.html','r',encoding="UTF-8")
f2=open('城市大全.csv','w')
f=f1.read()
ls=[]
ls=re.findall('<div class="para" label-module="para">(.+)</div>',f)
ls[8]=ls[8][:-4]
num=0
for line in ls:ls[num]=re.sub(' ',',',line)num+=1
for x in ls:f2.write(x+'\n')
f1.close()
f2.close()

http://www.dtcms.com/a/275191.html

相关文章:

  • 第三方渗透测试:范围咋定?需供应商同意吗?
  • 【经典面经】C++新特性 TCP完整收发数据 TLS1.2 TLS1.3
  • 低成本的AI知识库方案及推荐
  • 计算机网络第三章(6)——数据链路层《网桥交换机》
  • 【Python3教程】Python3高级篇之CGI编程
  • Windows系统下GroundingDINO的安装2025(踩无数坑)
  • Django母婴商城项目实践(三)
  • SpringBoot 使用注解获取配置文件中的值
  • 揭示宇宙的隐藏对称性:群论-AI云计算拓展核心内容
  • 加密狗真的坏了吗?CodeMeter 锁故障判定与质保指引
  • 2025 年第十五届 APMCM 亚太地区大学生数学建模竞赛B题 疾病的预测与大数据分析
  • SpringCloud之Ribbon
  • vue入门学习教程
  • Go语言中的组合式接口设计模式
  • Go·并发处理http请求实现
  • Python Day10
  • C语言初阶4-数组
  • UE5多人MOBA+GAS 18、用对象池来设置小兵的队伍的生成,为小兵设置一个目标从己方出生点攻打对方出生点,优化小兵的血条UI
  • Xavier公式的原理
  • 备案是联系主机商还是域名商
  • ESP32语音唤醒
  • 【B题解题思路】2025APMCM亚太杯中文赛B题解题思路+可运行代码参考(无偿分享)
  • 【内赠门票】GoGoGo!NetMarvel邀您出发ChinaJoy啦!
  • UniHttp中HttpApiProcessor生命周期钩子介绍以及公共参数填充-以百度天气接口为例
  • cocos游戏开发中,如何制作一个空气墙
  • WHIP 协商分析研究
  • 背包初步(0-1背包、完全背包)
  • PID 算法的原理与应用 (通俗易懂)
  • CSS 中px、em、rem、%、vw、vh、vm、rpx、fr 介绍和区别对比
  • 【高等数学】第三章 微分中值定理与导数的应用——第三节 泰勒公式