python读写txt文件
文件的打开的两种方式f = open("data.txt","r") #设置文件对象
f.close() #关闭文件#为了方便,避免忘记close掉这个文件对象,可以用下面这种方式替代
with open('data.txt',"r") as f: #设置文件对象str = f.read() #可以是随便对文件的操作一、读文件1.简单的将文件读取到字符串中f = open("data.txt","r") #设置文件对象
str = f.read() #将txt文件的所有内容读入到字符串str中
f.close() #将文件关闭2.按行读取整个文件#第一种方法
f = open("data.txt","r") #设置文件对象
line = f.readline()
line = line[:-1]
while line: #直到读取完文件line = f.readline() #读取一行文件,包括换行符line = line[:-1] #去掉换行符,也可以不去
f.close() #关闭文件 #第二种方法
data = []
for line in open("data.txt","r"): #设置文件对象并读取每一行文件data.append(line) #将每一行文件加入到list中 #第三种方法
f = open("data.txt","r") #设置文件对象
data = f.readlines() #直接将文件中按行读到list里,效果与方法2一样
f.close() #关闭文件3.将文件读入数组中import numpy as np
data = np.loadtxt("data.txt") #将文件中数据加载到data数组里二、写文件1.简单的将字符串写入txt中with open('data.txt','w') as f: #设置文件对象f.write(str) #将字符串写入文件中2.列表写入文件单层列表data = ['a','b','c']
#单层列表写入文件
with open("data.txt","w") as f:f.writelines(data)双层列表#双层列表写入文件
#第一种方法,每一项用空格隔开,一个列表是一行写入文件
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('\'','')+'\n' #将其中每一个列表规范化成字符串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) #写入文件3.数组写入文件中#将数组写入文件
import numpy as np
#第一种方法
np.savetxt("data.txt",data) #将数组中数据写入到data.txt文件
#第二种方法
np.save("data.txt",data) #将数组中数据写入到data.txt文件
Python 文件操作中的读写模式:open(path, ‘-模式-’,encoding=‘UTF-8’)
open(path, ‘-模式-‘,encoding=’UTF-8’)
即open(路径+文件名, 读写模式, 编码)在python对文件进行读写操作的时候,常常涉及到“读写模式”,整理了一下常见的几种模式,如下:读写模式:r :只读
r+ : 读写
w : 新建(会对原有文件进行覆盖)
a : 追加
b : 二进制文件常用的模式有:“a” 以“追加”模式打开, (从 EOF 开始, 必要时创建新文件)
“a+” 以”读写”模式打开
“ab” 以”二进制 追加”模式打开
“ab+” 以”二进制 读写”模式打开“w” 以”写”的方式打开
“w+” 以“读写”模式打开
“wb” 以“二进制 写”模式打开
“wb+” 以“二进制 读写”模式打开“r+” 以”读写”模式打开
“rb” 以”二进制 读”模式打开
“rb+” 以”二进制 读写”模式打开rU 或 Ua 以”读”方式打开, 同时提供通用换行符支持 (PEP 278)需注意:1、使用“w”模式。文件若存在,首先要清空,然后重新创建
2、使用“a”模式。把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建。3、f.read([size]) :size未指定则返回整个文件,如果文件大小>2倍内存则有问题。f.read()读到文件尾时返回”“(空字串)
4、file.readline() 返回一行
5、file.readline([size]) 返回包含size行的列表,size 未指定则返回全部行
6、”for line in f: print line” #通过迭代器访问
7、f.write(“hello\n”) #如果要写入字符串以外的数据,先将他转换为字符串.
8、f.tell() 返回一个整数,表示当前文件指针的位置(就是到文件头的比特数).
9、f.seek(偏移量,[起始位置]) : 用来移动文件指针
偏移量 : 单位“比特”,可正可负
起始位置 : 0 -文件头, 默认值; 1 -当前位置; 2 -文件尾
10、f.close() 关闭文件
基本的中文文本数据预处理
利用内置方法及re模块保留汉字rere.findall(u'[\u4e00-\u9fff]+', a_str)
保留汉字、换行符rere.findall(u'[\u4e00-\u9fff\n]+', a_str)
list to stringa_str = ' '.join(a_list)
string to lista_list = a_str.split(' ')
删除\替换特定符号a_str_cln = a_str.replace('丨','')rea_str_cln = re.sub('|', ' ', a_str)
确定b中a位置并返回值rere.search(a, b).span()