python针对文本的操作

2023-05-16

Python文件的处理

1: 我们可以把文件想象成一个仓库;可以供我们操作使用
针对文件的操作流程为:
	打开文件并且创建对象;
	对该文件内容进行 读取 写入 删除 修改等操作
	关闭并且保存
2: 常用操作函数
 open()函数打开文件并创建对象
	参数:
	路径信息(如果不在当前路径下;需要使用绝对路径进行定位)	
	打开方式: 
		r 默认读模式<如果文件不存在则抛出异常>
		w 写入模式;使用该模式会清空文本中原有的内容 <如果该文件不存在则会创建>
		x 它也是写入模式;如果该文件存在则会抛出异常
		a 它是对文件进行追加;不会覆盖文件的原始内容
	encoding参数指定该文本的编码格式

	colse()使用该函数进行关闭我们创建的文件对象
2.1: 也可以使用with模式进行操作文件;这样我们就不会忘记使用close函数关闭文件了
with open('python.txt','r',encoding='utf8') as  filename:
      print(filename.read())
print(filename.read())  
# 抛出异常信息  ValueError: I/O operation on closed file.  这是因为我们调用的文件对象已经关闭了
3: 测试文件是否可读:
readable() 测试创建的文件对象是否可读;它的返回值是False 和 true我们可以利用这个函数进行判断该文件是否可读
wireable()测试文件时候可写
filename = open('python.txt','r',encoding='utf8')
aa = filename.readable()
print(aa)  # 输出打印true 证明这个文件是可读的
4: 针对文件对象进行操作的函数
read()函数读文件中所有的内容
readline()读取文件一行的内容也可以 读取该行的指定参数
readlines()读取文件中的内容添加到列表中去;换行用\n代替
4.1: 也是可以使用for循环进行输出文件中的内容
filename = open('python.txt','r',encoding='utf8')
print(filename.readline(4))
filename.close()   
#  如果我们不关闭该对象的话;使用readline()读取的4个长度是不会被读取的
filename = open('python.txt','r')
for line in filename:
   print(line)
5: 异常处理
如何处理异常:<通过异常处理可以发现错误所在>
异常处理结构: try except
另一种处理异常结构:
	try: except: else:   <如果try抛出异常则执行except代码;反之执行else中的代码>
	try: except: finally:  <finally中的代码是必执行的>

例如上面调用的with操作文件报异常我们就可以使用它进行处理异常进行回显

try:
   with open('python.txt','r',encoding='utf8') as  filename:
      print(filename.read())
   print(filename.read()) 
   # 抛出异常信息  ValueError: I/O operation on closed file. 
except:
   print('文件对象已经被关闭')  # 输出文件对象已经被关闭
6:小测试
在特定的文件内进行提取特定的一段内容:
	例如在当前目录下存在一个txt文件;该文件中的内容为:
		alert any any -> any (msg:"this is a test";flow:"established")
	在文本中具有多行类似此内容的数据<msg内容不同>;通过python我们将msg中的内容提取出来
import sys
import os
dirs = ''
msg = []
list = os.listdir('./')  # 返回的当前目录下面所有文件和目录的名字列表
# print(list)
for i in range(0,len(list)):
	dirs = list[i]
	if '.txt' in  dirs:
		with open(dirs,'r',encoding='utf8') as file:
			line = file.readlines()
			# print(line)
			for i in range(0,len(line)):
				if 'alert' and 'msg' in line[i]:
					msgnum = line[i].index('msg:"')
					msgnum1 = line[i].index('";flow:')
					msg.append(line[i][msgnum+5:msgnum1])
with open('Msg.txt','w',encoding='utf8') as msgwrite:
	for i in range(0,len(msg)):
		msgwrite.write(msg[i] + '\n')
	print('导入成功')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python针对文本的操作 的相关文章

随机推荐

  • VUE前端导出表格功能实现 前端 从后端获取(下载,导出)文件的方法

    场景 在很多时候需要从前端下载文件的情况 xff0c 最为典型就是导出指定格式的数据 一般存在两种方式 xff1a 请求接口之后 xff0c 直接打开请求该文件的地址 xff0c 下载到本地 请求接口之后 xff0c 将获取到的文件数据格式
  • Java将中国标准时间字符串转换为Date格式

    一 xff1a Java将中国标准时间字符串转换为Date格式 当前方法作用 xff0c 主要将标准时间格式如 xff1a 星期三 五月 01 22 25 49 CST 2023 输出按照指定格式内容 Data 和 String span
  • mysql中处理某个字段的json,将json中冗余内容去掉

    mysql中某个字段存在json xff0c 且json数据过大 xff0c 严重影响查询效率 处理办法 xff1a 将此字段提出来 xff0c 新建一个字段 xff0c 将此json中的字段除大文件 xff08 类似于图片和音视频的bas
  • 在xshell里面永久显示vim行数

    输入命令 xff1a vim vimrc 在里面输入 set nu wq OK xff0c 完成
  • 使用“时间机器”备份您的 Mac

    使用 时间机器 备份您的 Mac 了解如何在 Mac 上创建文件的备份 您可以使用 Mac 的内建备份功能 时间机器 对您的所有文件进行自动备份 xff0c 包括应用 音乐 照片 电子邮件 文稿和系统文件 如果您拥有备份 xff0c 当原始
  • 记录Debian11安装docker-desktop(一)

    64 TOC 一 首先系统安装Debian11 0linux系统 xff0c 并修改配置信息 1 切换安装源为alibaba debian 11 x bullseye 1 1编辑sudo vim etc apt sources list文件
  • docker环境安装运行tomcat8.5

    1 docker pull tomcat 8 5 56 2 mkdir opt tomcat 3 cd opt tomcat 4 docker run d p 8080 8080 v opt tomcat webapps usr local
  • SessionFactory中getCurrentSession地址的对比

    1 首先 xff0c 建立一个静态factory方法 xff0c 提供给CurrentSession public class CongUtil public static SessionFactory getUtil Configurat
  • springMVC中bean容器:bean.xml的配置

    lt xml version 61 34 1 0 34 encoding 61 34 UTF 8 34 gt lt beans xmlns 61 34 http www springframework org schema beans 34
  • Maven+spring +dubbo+zookeeper

    maven 43 springmvc 43 dubbo 43 zookeeper 为什么要用dubbo xff1f 还是让官方来解释吧 xff1a http dubbo io User 43 Guide zh htm http dubbo
  • window环境搭载elasticsearch学习(一)

    前言 xff1a 没太大比较 xff0c 因为工作项目需要 短时间运用elasticsearch做一个简单demo并能够实现一些简单操作 xff0c 所以选择用了windows环境 估计会比较多的坑 xff0c 让我们积极入坑吧 一 官网下
  • window环境搭载elasticsearch学习(三)--中文分词器

    前言 系统 xff1a Windows10 elasticsearch版本 xff1a 5 6 6 中文分词版本 xff1a 5 6 6 xff08 需要与elasticsearch版本匹配 xff09 maven版本 xff1a 3 5
  • 基于Windows10基于Linux的C语言笔记Ⅰ

    这玩意儿就是自己的学习笔记 xff0c 不过 xff0c 也可以用来入门学习C语言 However xff0c 你需要 xff1a 学习C语言兴致 xff0c Windows10 xff08 或者你有一台Linux系统的电脑 xff09 x
  • PDF文件中电子签名(安全性、有效性、合法性)验证指南

    电子合同是电子签名较为常见的一种应用方式 xff0c 目前大多数的的电子合同与电子文书都采用PDF的文件格式 本文以PDF格式的电子合同为例解释如何验证电子签名的安全性 有效性与合法性 xff08 下文统称 验签 xff09 xff0c 同
  • 数据结构专题——二叉树

    什么是二叉树 通俗的讲就是树上每一个节点最多有两个子节点 官方的递归定义是 xff1a 要么二叉树没有根节点 xff0c 是一颗空树要么二叉树由根结点 左子树 右子树组成 xff0c 且左右子树也都是二叉树 这里有两种特殊的二叉树 满二叉树
  • CSS filter滤镜属性使用

    前言 CSS的滤镜filter属性 xff0c 可以对网页中的图片进行类似Photoshop图片处理的效果 xff0c 通过CSS对图像进行处理 xff0c CSS的filter属性可以得到一些类似PS的滤镜效果 浏览器支持情况 xff1a
  • vtk中的剪裁

    在VTK中 xff0c 我们通常需要的并不是严格标准的几何体 xff0c 我们需要对这些几何体进行加工 xff0c 修改其内容 xff0c 得到我们想要的效果 xff0c 下面结合例子介绍如何在VTK中实现对几何体的裁剪 要对几何体进行裁剪
  • Ubuntu18.04搭建jenkins,并关联Github

    一 Ubuntu搭建jenkins 1 安装Java环境 sudo apt install openjdk 11 jre headless 创建一个Jenkins目录 xff0c 并进入 mkdir Jenkins cd Jenkins 3
  • 使用FOFA进行资产收集

    使用FOFA进行资产收集 FOFA是一款空间搜索引擎 它可以通过进行网络空间测绘快速进行网络资产匹配FOFA官方地址 https fofa so 我们使用FOFA进行搜索资产的时候他是不区分大小写的 xff1b 并且我们可以使用一些逻辑连接
  • python针对文本的操作

    Python文件的处理 1 我们可以把文件想象成一个仓库 xff1b 可以供我们操作使用 针对文件的操作流程为 xff1a 打开文件并且创建对象 xff1b 对该文件内容进行 读取 写入 删除 修改等操作 关闭并且保存 2 常用操作函数 o