侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

Python 实现文件读写、坐标寻址、查找替换功能

Python  /  管理员 发布于 7年前   204

读文件

打开文件(文件需要存在)

#打开文件f = open("data.txt","r")  #设置文件对象print(f)#文件句柄f.close() #关闭文件#为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代with open('data.txt',"r") as f:  #设置文件对象  str = f.read()  #可以是随便对文件的操作

完全读取文件

#完全读取文件f = open("data.txt","r")  #设置文件对象string1 = f.read()   #将txt文件的所有内容读入到字符串string1中f.close()  #将文件关闭print(string1)

按按行读取整个文件方法一(删除回车)

#按行读取整个文件方法一(删除回车)data = []f = open("data.txt","r")  #设置文件对象line = f.readline()if line !='\n' and line[len(line) -1 if len(line)-1>0 else 0] == "\n":#去掉换行符,也可以不去  line_ = line[:-1]data.append(line_)while line:       #直到读取完文件  line = f.readline() #读取一行文件,包括换行符  if line !='' and line[len(line) -1 if len(line)-1>0 else 0] == "\n":#去掉换行符,也可以不去    line_ = line[:-1]    data.append(line_)f.close() #关闭文件print(data)

按行读取整个文件方法一(不删除回车)

#按行读取整个文件方法一(不删除回车)data = []f = open("data.txt","r")  #设置文件对象line = f.readline()data.append(line)while line:       #直到读取完文件  line = f.readline() #读取一行文件,包括换行符  if line !='':    data.append(line)f.close() #关闭文件print(data)

按行读取整个文件第二种方法

#按行读取整个文件第二种方法data = []for line in open("data.txt","r"): #设置文件对象并读取每一行文件  data.append(line)        #将每一行文件加入到list中print(data )

按行读取整个文件第三种方法

f = open("data.txt","r")  #设置文件对象data = f.readlines() #直接将文件中按行读到list里,效果与方法2一样f.close()       #关闭文件print(data)

将文件读入numpy数组中

#将文件读入数组中import numpy as npdata = np.loadtxt("data.txt")  #将文件中数据加载到data数组里print(data)

写文件列表写入文件

#列表写入文件(直接)data = ['a','b','c']#单层列表写入文件with open("data.txt","w") as f:  f.writelines(data)

#列表写入文件(加入一些东西)  data = ['a','b','c']#单层列表写入文件with open("data.txt","w") as f:  for i in data:    f.write(i+'\r\n')

 #二维列表写入文件    data =[ ['a','b','c'],['a','b','c'],['a','b','c']]with open("data.txt","w") as f:  #设置文件对象  for i in data:    i = str(i).strip('[').strip(']').replace(',','').replace('\'','').replace(' ',',')+'\r\n' #将其中每一个列表规范化成字符串    print(i)    f.write(i)  

#第二种方法,直接将每一项都写入文件data =[ ['a','b','c'],['a','b','c'],['a','b','c']]with open("data.txt","w") as f:  #设置文件对象  for i in data:         #对于双层列表中的数据    f.writelines(i)    #将数组写入文件

import numpy as npdata =[ [1,2,3],[4,5,6],[7,8,9]]# 第一种方法将数组中数据写入到data.txt文件np.savetxt("data1.txt",data) # 第二种方法将数组中数据写入到data.npy文件np.save("data",data)   import numpy as npfilename = 'data.txt' # txt文件和当前脚本在同一目录下,所以不用写具体路径dataele_list = []with open(filename, 'r') as f:  while True:    lines = f.readline() # 整行读取数据    if not lines:      break    dataele_tmp = [float(i) for i in lines.split()] # 将整行数据分割处理,如果分割符是空格,括号里就不用传入参数,如果是逗号, 则传入‘,'字符。    dataele_list.append(dataele_tmp) # 添加新读取的数据dataele_np = np.array(dataele_list) # 将数据从list类型转换为array类型。print(dataele_np)

非替换写入

#非替换写入#r+ 模式的指针默认是在文件的开头# 如果直接写入,则会覆盖源文件,通过read() 读取文件后,指针会移到文件的末尾,再写入数据就不会有问题了。# 这里也可以使用a 模式f2 = open('data.txt','r+')f2.read()f2.write('\r\nhello boy!')f2.close()#非替换写入f2 = open('data.txt','a')f2.write('\r\nhello fff!')f2.close()

文件坐标插入读取

# 在开始使用open打开文件时候,将打开方式从r,换成rb即可 才可以使用seek移动f = open('data.txt','rb')  #f.tell()  #获取指针位置print("初始位置",f.tell())# 开头位置偏离3位置f.seek(3,0)print("开头位置偏离3位置",f.tell())print("==",f.readline(),"==")print("读取一行后位置",f.tell())# 当前位置偏离5位置f.seek(5,1)print("当前位置偏离5位置",f.tell())print("==",f.readline(),"==")print("读取一行后位置",f.tell())# 结尾偏离5位置f = open('data.txt','rb')f.seek(0,2)print("结尾偏离0位置",f.tell())print("==",f.readline(),"==")print("读取一行后位置",f.tell())f.seek(3,2)print("结尾偏离3位置",f.tell())print("==",f.readline(),"==")print("读取一行后位置",f.tell())

内容查找

# 内容查找import ref = open('data.txt')source = f.read()f.close()r = 'www's = len(re.findall(r,source))print(s)import ref = open("data.txt",'r')count = 0for s in f.readlines():  li = re.findall("www",s)  if len(li)>0:    count = count + len(li)print ("Search",count, "www")f.close()

替换

#替换f1 = open('data.txt','r')f2 = open('data2.txt','w')for s in f1.readlines():  f2.write(s.replace('www','w')+'\r\n')f1.close()f2.close()

#排序 去除空行 注释f = open('data.txt')result = list()for line in f.readlines():        # 逐行读取数据  line = line.strip()        #去掉每行头尾空白  if not len(line) or line.startswith('#'):  # 判断是否是空行或注释行    continue         #是的话,跳过不处理  result.append(line)       #保存f.close()result.sort()#排序结果print(result)f = open('data2.txt','w')for line in result:  f.write(line+'\r\n')

总结

以上所述是小编给大家介绍的Python 实现文件读写、坐标寻址、查找替换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


  • 上一条:
    Python range、enumerate和zip函数用法详解
    下一条:
    Python使用APScheduler实现定时任务过程解析
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客