python学习(九)文件操作
#encding=utf-8
fp = open( "c:\\tuan.txt",'w')
print type(fp)
print fp
fp.write("glory road is great!")
fp.close()
代码实例2:
#encding=utf-8
fp = open("c:\\tuan.txt",'r')
print fp.readline()
fp.close()
三.读取带有中文的文件
#encoding=utf-8
import chardet
fp=open("d:\\a.txt","r")
file_content=fp.read()
print chardet.detect(file_content)
print file_content.decode("utf-8").encode("gbk","ignore")
fp.close()
用chardet判断文件类型的应用:
import chardet
codec=chardet.detect(u'ajaj'.encode("utf-8"))['encoding']
print u'bbbb'.encode("utf-8").decode(codec)
四.打开文件
with open(“c:\\a.txt”,’r’) as f:
for line in f:
print line
五.文件的模式
r:
以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb:
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
r+:
打开一个文件用于读写。文件指针将会放在文件的开头。
rb+:
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
w:
打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb:
以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
w+:
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
wb+:
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a:
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab:
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+:
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+:
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
六.文件对象
返回true如果文件已被关闭,否则返回false。
file.mode
返回被打开文件的访问模式。
file.name
返回文件的名称。
file.softspace
如果用print输出后,是否跟一个空格符,false不打印, true则打印。
fp = open("d:\\test.txt")
print u"文件是否关闭",fp.closed
print u"文件的访问模式",fp.mode
print u"文件名称",fp.name
print u"文件末尾是否强制加空格",fp.softspace
fp.close()
fp = open("d:\\test.txt",'r')
content = fp.read()
print u"读取的内容如下:",content
fp.close()
代码示范2:
fp = open("d:\\test.txt",'r')
content = fp.read(5)
print u"读取的内容如下:",content
fp.close()
2.fileObject.readline( [size] )
一行,如果给定了size,有可能返回的只是一行的一部分,以字符串的形式返回,并且结尾会有一个换行符"\n"。读完一行,文件操作标记移动到下一行的开头。
fp = open("d:\\test.txt",'r')
content = fp.readline()
print u"读取的内容如下:",content
fp.close()
3.fileObject.readlines( [size] )
把文件每一行作为一个list的一个成员,是一个字符串,并且结尾会有一个换行符"\n",并返回这个list。
指定很小的数字,会不生效,python 默认8k缓存区大小,需要大于8k生效
fp = open("d:\\test.txt",'r')
content = fp.readlines()
print u"读取的内容如下:",content
for i in content:print i
fp.close()
小练习:读取一个文件,统计一下文件中有英文单词的行数是多少
fp = open( "d:\\test.txt",'r')
lineslist= fp.readlines()
fp.close()
line_count=0
for line in lineslist:for i in line:if (i >='a' and i<='z') or (i>='A' and i<='Z'):line_count+=1break
print line_count
4.fileObject.write( str )
fp = open( "c:\\test.txt",'w')
fp.write('文件写入测试' + '\n')
#关闭文件
fp.close()
import time
def str_concate():result=""for i in xrange(1000000):result+="a"return resultstart_time = time.time()
str_concate()
end_time = time.time()
result = end_time - start_time
with open("e:\\1.txt","w") as fp:fp.write(u"函数执行的结果:".encode("gbk")+str(result)+u"秒".encode("gbk"))
如果想写到html里可以用这个模板:
#encding=utf-8
import time
def str_concate():result=""for i in xrange(1000000):result+="a"return resultstart_time = time.time()
str_concate()
end_time = time.time()
result = end_time - start_timecontent = u"<html><body><h1>函数执行的结果:</h1><b>%s</b></body><html/>" %str(result)
with open("e:\\1.html","w") as fp:fp.write(content.encode("gbk"))
5.fileObject.writelines( seq )
testlist=['abc\n','123\n','this is test\n']
fp = open( "d:\\test.txt",'w')
fp.writelines(testlist)
fp.close()
更多解释: 注意:序列中的内容也必须是字符串类型的数据,才能成功写入文件。
File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
当一个文件对象的引用被重新指定给另一个文件时,Python 会关闭之前的文件。用 close()方法关闭文件是一个很好的习惯。如果文件关闭后,还对文件进行操作就会产生ValueError错误,但如果不及时关闭文件,有可能产生句柄泄露,丢失数据。
import time
fp = open("D:\\test.txt",'w')
fp.write("1,2,3,4")
fp.flush()time.sleep(20)
8.fileObject.tell()
返回文件操作标记的当前位置,以文件的开头为基准点。
#encoding=utf-8
#打开文件准备读取
fp = open( "c:\\test.txt",'r')
print u"当前文件操作标记位置为:", fp.tell()
line = fp.readline()
print u"读取一行后文件操作标记位置为:", fp.tell()
#关闭文件
fp.close()
9.fileObject.seek( offset[, from ] )
tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后。
seek(offset [,from])
需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
#encding=utf-8
import time
fp = open("e:\\1.txt","r+")
fp.seek(0,2)
print fp.tell()
fp.write("glorxxxxx")
fp.seek(0,0)
print fp.read()
fp.close()
#encding=utf-8
import time
fp = open("e:\\1.txt","r+")
content=fp.read()
content=content.replace("boy","xxx")
fp.seek(0,0)
fp.write(content)
fp.close()
10.fileObject.truncate( [size] )
#encoding=utf-8
# Open a file
fp = open(r"c:\test.txt", "r+")
print "Name of the file: ", fp.name
line = fp.readline()
print "Read Line: %s" % (line)
# Now truncate remaining file.
fp.truncate()
print fp.tell()
# Try to read file now
remainingLine = fp.readline()
print "Read Line: %s" % (remainingLine)
# Close opend file
fp.close()
#encding=utf-8
fileNo=1
backup_content=""
line_count=0
fp = open("e:\\1.txt","r+")
for line in fp:backup_content+=lineline_count+=1if line_count%10==0:with open("e:\\backup"+str(fileNo)+".txt","w") as fp2:fp2.write(backup_content)line_count=0backup_content=""fileNo+=1 fp.close()
小练习:删除空行:
fp = open(r'test.txt')
aList = []
for item in fp:
if item.strip():
aList.append(item)
fp.close()
fp = open(r'test2.txt','w')
fp.writelines(aList)
fp.close()
11.处理数据文件
fp =open("e:\\data.log")
for line in fp.readlines():filename = line[:14]content = line[14:]with open("e:\\"+filename+".txt","w") as fp2:fp2.write(content+"\n")fp.close()
12.数据的序列化--pickle
import cPickle as p
shoplistfile = 'd:\\test.txt'
shoplist=['apple','mango','carrot']
f = file(shoplistfile,'w')
p.dump(shoplist,f)
f.close()
del shoplist
f = file(shoplistfile)
storelist = p.load(f)
print u"从文件读取的列表对象:",storelist
import cPickle as p
shoplistfile = 'd:\\test.txt'
shoplist=['apple','mango','carrot']
animallist=['hippo','rabbit']
f = file(shoplistfile,'w')
p.dump(shoplist,f)
p.dump(animallist,f)
f.close()
del shoplist
del animallist
f = file(shoplistfile)
storelist = p.load(f)
animallist = p.load(f)
print storelist
print animallist
python学习(九)文件操作相关推荐
- Python学习之文件操作
一.文件File 通过Python程序来对计算机中的各种文件进行增删改查的操作 - I/O(Input / Output) - 操作文件的步骤: ① 打开文件 ② 对文件进行各种操作(读.写),然后保 ...
- Python学习笔记--文件操作
(一)文件的编码 1. 编码 编码是一种规则集合,记录了内容和二进制间进行相互转换的逻辑 编码有许多种,最常用的是utf-8 2. 使用编码的原因 计算机只能识别二进制数,因此要将文件的内容翻译为二进 ...
- python学习日记(文件操作)
文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...
- Python学习(文件操作)
文章目录 一.文件操作 1.1 常见的文件类型 1.2 文件操作的流程 1.3 文件的打开与关闭 打开 文件对象的属性 关闭 1.4 文件的读写: 读 写 1.5 定位读取 1.6 with open ...
- Python学习:文件操作
一.打开文件 1.格式 在python,使⽤open函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新⽂件,语法如下: open(name, mode) name:是要打开的⽬标⽂件名的字符串(可以包含 ...
- Python学习之==文件操作
1.打开文件的模式 1 r,只读模式(默认)[不可写:文件不存在,会报错] 2 w,只写模式[不可读:不存在则创建:存在则删除内容] 3 a,追加模式[不可读:不存在则创建:存在则追加内容] 4 r+ ...
- python设置文件权限_PYTHON学习之文件操作;
PYTHON学习之文件操作: 文件内容替换 for line in flielinput.input("filepath",inplace=1): line = line.repa ...
- C/C++学习之路_九:文件操作
C/C++学习之路_九:文件操作 目录 概述 文件的顺序读写 文件的随机读写 windows和linux文本 获取文件状态 删除文件.重命名文件 文件缓冲区 1. 概述 1. 磁盘文件和设备文件 磁盘 ...
- Python中的文件操作和异常
Python中的文件操作和异常 文章目录 Python中的文件操作和异常 一.文件 01. 文件的概念 1.1 文件的概念和作用 1.2 文件的存储方式 文本文件和二进制文件 02. 文件的基本操作 ...
- python对PDF文件操作
python对PDF文件操作 下载模块PyPDF2,以页为基本单位对PDF文件进行读写操作,无法直接操作每一页内容. PDF文件读操作 导入函数 from PyPDF2 import PdfFileR ...
最新文章
- Python 高级特性 (1)- 闭包
- 从前端框架到前端架构参考资料
- 用计算机解决问题的五个步骤,人们利用计算机解决问题的基本过程一般有如下五个步骤....docx...
- 正则匹配以除了开头和结尾要有个大写_27.Google analytics 中的 正则表达式
- 005_FastDFS分布式nginx访问
- Youtube深度学习推荐系统
- powerdesigner 设置唯一约束
- Android之Caused by: java.lang.IllegalArgumentException: Failed to find configured root that contains
- 有人说中文编辑是解决中国程序员编程效率的秘密武器,请问他是一个银弹吗?...
- 中国主流的大数据分析厂商
- 一小时学会用Python Socket 开发可并发的FTP服务器
- 基于python技术的超市仓库管理系统
- pcshare个人版
- 2018年访日外国游客消费创新高 中国大陆居首
- Monkey简单介绍
- 唯品会基于Kubernetes(k8s)网络方案演进
- ZigBee智能开关和单火线取电技术
- 哔哩哔哩2020校园招聘后端笔试卷(一)
- 物联网系统中常见的通信协议分析
- ffmpeg-时间基tbn、tbc、tbr
热门文章
- linux 修改分辨率lcd_Linux下LCD屏幕字体显示优化--dpi设置及sub-pixel次像素微调
- 步进电机和伺服电机有什么区别
- Bad return type in method reference:cannot convert java.util.function.PredicateXXX to boolean
- opencv计算视频和摄像头的帧数及帧率(FPS)
- php基础语法——循环语句
- Vue3 Element Plus 动态图标
- ImgBurn最方便小巧的刻录软件
- VMware-NSX之CLI使用
- 操作系统学习总结-第三章
- 【报告分享】2021年中国美食消费用户行为洞察-易观智库(附下载)