python3.x文件IO学习笔记
2016-05-14 17:22
405 查看
昨天写小程序的时候遇到了文件IO的问题,今天决定学习学习。
1.打开文件
原来自己做调试的时候是把要调试的文件放在python目录下,或者是用sys加目录,或者设置环境变量,但是open函数支持路径open(r'c:\test\mytxt.txt')
2.文件模式
a.用w会覆盖原有的名字相同的文件,如果想持续地写入,用a模式
如果想获取数据再修改,先用r后用a
b.‘+’参数表示读和写都可以,可以用到任何模式中
c.'b'模式:b模式处理二进制文件,比如声音或者图像
为什么要用二进制模式?
不同系统有不同的换行符,Windows下是\r\n, UNIX下是\n,为了跨平台运行
pyhton做了一些转换,比如在Windows下,读取文件时, 将\r\n换成\n,写入
时,把\n换成\r\n,但是声音要是这么处理,数据可能就会损坏了(使用u参数
可以统一换行符)
3.缓冲
如果参数是0, 没有缓冲
如果参数是1, 有,大于1表示缓冲的字节。
如果参数是负数, 表示使用默认的缓冲区大小。
4.读
a.按着字节读取
file = open(r'c:\\test\mytxt.txt', 'r')#r可以省略
file.read(n) #n为字节
file.read()读取剩下的字节
b.按着行读取
file.readline(n),和file.read(n)一样
file.readline()返回一行
file.readlines()读取文件所有行并且返回列表
file.readlines()也有参数
d.把整个文件迭代器list,然后用list的方法处理
5.写
a.write()
write会把内容追加到文件已有部分的后面
b.writelines()
writelines可以接受字符串列表,不会自动换行
6.seek和tell
file.tell可以告诉你文件浏览到什么位置了,seek可以重置位置
7.关闭文件
写入文件后需要关闭,读取文件后,关闭不关闭都无所谓
方案1:
try:
#do something
finally:
file.close()
方案2:
with open('myfile.txt') as file:
#do something
关于上下文管理器的东西,可以看python文档中contextlib和相应部分
8.对文件内容迭代
a.对字节处理
f= open('sometext')
while True:
char = f.read(1)
if not char
:
break
print(char)
b.按着行处理
c.对整个文件处理(文件不大的情况):
f= open('sometext')
for char in f.read():
print(char)
d.使用fileinput模块
e.文件对象在python2.2以后可以迭代,意味着它可以放在for循环中
f= open('sometext')
for line in f:#与上面不同,此处是迭代
print(line)
1.打开文件
原来自己做调试的时候是把要调试的文件放在python目录下,或者是用sys加目录,或者设置环境变量,但是open函数支持路径open(r'c:\test\mytxt.txt')
2.文件模式
a.用w会覆盖原有的名字相同的文件,如果想持续地写入,用a模式
如果想获取数据再修改,先用r后用a
b.‘+’参数表示读和写都可以,可以用到任何模式中
c.'b'模式:b模式处理二进制文件,比如声音或者图像
为什么要用二进制模式?
不同系统有不同的换行符,Windows下是\r\n, UNIX下是\n,为了跨平台运行
pyhton做了一些转换,比如在Windows下,读取文件时, 将\r\n换成\n,写入
时,把\n换成\r\n,但是声音要是这么处理,数据可能就会损坏了(使用u参数
可以统一换行符)
3.缓冲
如果参数是0, 没有缓冲
如果参数是1, 有,大于1表示缓冲的字节。
如果参数是负数, 表示使用默认的缓冲区大小。
4.读
a.按着字节读取
file = open(r'c:\\test\mytxt.txt', 'r')#r可以省略
file.read(n) #n为字节
file.read()读取剩下的字节
b.按着行读取
file.readline(n),和file.read(n)一样
file.readline()返回一行
file.readlines()读取文件所有行并且返回列表
file.readlines()也有参数
d.把整个文件迭代器list,然后用list的方法处理
5.写
a.write()
write会把内容追加到文件已有部分的后面
b.writelines()
writelines可以接受字符串列表,不会自动换行
6.seek和tell
file.tell可以告诉你文件浏览到什么位置了,seek可以重置位置
7.关闭文件
写入文件后需要关闭,读取文件后,关闭不关闭都无所谓
方案1:
try:
#do something
finally:
file.close()
方案2:
with open('myfile.txt') as file:
#do something
关于上下文管理器的东西,可以看python文档中contextlib和相应部分
8.对文件内容迭代
a.对字节处理
f= open('sometext')
while True:
char = f.read(1)
if not char
:
break
print(char)
b.按着行处理
c.对整个文件处理(文件不大的情况):
f= open('sometext')
for char in f.read():
print(char)
d.使用fileinput模块
e.文件对象在python2.2以后可以迭代,意味着它可以放在for循环中
f= open('sometext')
for line in f:#与上面不同,此处是迭代
print(line)
相关文章推荐
- python相关知识/技巧文摘
- Python爬虫技巧总结
- Python中的多进程与多线程/分布式该如何使用
- python实现SMTP邮件发送功能
- 详解Python函数作用域的LEGB顺序
- python爬取51job中hr的邮箱
- Failed to install Python Cryptography package
- [Python]第四讲:print语句
- [Python]第三讲:数据类型
- python处理excel(二):写
- python基础之模块之sys模块
- 168. Excel Sheet Column Title [easy] (Python)
- python爬取51job中hr的邮箱
- 171. Excel Sheet Column Number [easy] (Python)
- Python函数作用域的查找顺序
- 242. Valid Anagram [easy] (Python)
- python02-数据类型与字符串编码
- python程序生成平均脸
- 第二章 Python简介
- Python基础——准备工作