码迷,mamicode.com
首页 > 编程语言 > 详细

python\文件操作

时间:2017-04-23 13:22:12      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:nes   步骤   python   read   name   nbsp   int   关闭   encoding   

一.文件操作步骤

 1.打开文件

   使用open()

   文件句柄 = open(‘文件路径‘, ‘模式‘)

2.文件操作

 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作。

 

打开文件的模式有:

 

  • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
  • w,只写模式【不可读;不存在则创建;存在则清空内容】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【可读;   不存在则创建;存在则只追加内容】

 

"+" 表示可以同时读写某个文件

 

  • r+, 读写【可读,可写】
  • w+,写读【可读,可写】
  • x+ ,写读【可读,可写】
  • a+, 写读【可读,可写】

 

 "b"表示以字节的方式操作

 

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

 

 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

 

 

3.关闭文件

  使用close()

补充:with语句自带使用close()方法, 这也是为了防止打开文件忘记关闭

比如:

with open() as f_read:#打开文件

是不需要添加close()的。

 

二.文件操作

1.read

文件名.read(n):读取指定个数的字符,文件从光标位置开始

注意:python3版本读取的是字符

        python2版本读取的是字节

在读取完第一次字符时,第二次读取从上次读取完的字符开始

比如:

f = open("test",mode="r",encoding="utf8")

data = f.read(5)
data2 = f.read(6)
print(data)
print(data2)
得到的答案是
globa
l


f.readline 读取一行,光标到下一行行首
f.readlines 显示列表结果,每一个元素是一行内容

行与字符串的拼接
使用join用法
文件名.join([文件名,“需要添加的字符串”])
循环整个文件,并在一行中拼接使用for循环

2.write
f =open(name,mode=w) 修改文件可读权限
文件名.write("")   覆盖文件信息

文件名.write("\n") 换行

f =open(name,mode="a")追加信息,原来文件信息不变

f =open(name,mode="x")原有的文件不覆盖,会报错;没有的文件重新创建

f=write("")把内容添加到内存,在一定时间内显示出来

f.writelines(["11\n","22\n"])写多行
f.truncate() 截断  只能在写权限操作

3.可读可写模式:
r+  追加写
默认光标在开始位置
w+ 首先会覆盖,清空,然后再写,seek调整

a+ 总是在最后位置添加。光标在文件最后位置
无论光标在什么位置,一定是追加写:
想读取内容:seek调增

4.flush操作
f=flush("") 直接显示,内容直接存储在硬盘上
比如:
进度条操作
sys.stdout.write("")相当于print
sys.stdout 文件
循环打印#
import sys
for i in range(10):
sys.stdout.write("#")
sys.stdout.flush()
import time
time.sleep(0.5)

显示百分比
import sys
for i in range(6):
s = "\r%s%% %s"%(i,"?"*i)
sys.stdout.write(s)
sys.stdout.flush()
import time
time.sleep(0.5)
 

python\文件操作

标签:nes   步骤   python   read   name   nbsp   int   关闭   encoding   

原文地址:http://www.cnblogs.com/guobaoyuan/p/6752169.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!