Python 文件操作中的读写模式:open(path, ‘-模式-‘,encoding=‘UTF-8‘)+python读写文件txt +文本数据预处理

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模块

保留汉字re

re.findall(u'[\u4e00-\u9fff]+', a_str)
保留汉字、换行符re

re.findall(u'[\u4e00-\u9fff\n]+', a_str)
list to string

a_str = ' '.join(a_list) 
string to list

a_list = a_str.split(' ')
删除\替换特定符号

a_str_cln = a_str.replace('丨','')
           re

a_str_cln = re.sub('|', ' ', a_str)
确定b中a位置并返回值re

re.search(a, b).span()
  • 9
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值