圆月山庄资源网 Design By www.vgjia.com
读文件
打开文件(文件需要存在)
#打开文件 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 np data = 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 np data =[ [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 np filename = '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 re f = open('data.txt') source = f.read() f.close() r = 'www' s = len(re.findall(r,source)) print(s) import re f = open("data.txt",'r') count = 0 for 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 实现文件读写、坐标寻址、查找替换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
圆月山庄资源网 Design By www.vgjia.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
圆月山庄资源网 Design By www.vgjia.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月05日
2024年11月05日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]