首页 > 代码库 > python修炼6

python修炼6

文件操作

注:不能把open语句放在try块里,因为当打开文件出现异常时,文件对象file_object无法执行close()方法。

1.打开文件

  (相当于桌面的快捷方式)f=open(文件名,模式默认是制度模式"r")

data = http://www.mamicode.com/f.red()

f.colse()--------------开一个必须关一个要不然消耗内存

print(data)

模式:r只读w会覆盖只写x只写a追加

  • r ,只读模式【默认】
  • w,只写模式【不可读;不存在则创建;存在则清空内容;】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【不可读;   不存在则创建;存在则只追加内容;】

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

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

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

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

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

 打开方式-->字节

q= bytes(data,enconding=“utf-8")

1只读,rb(默认打开的就是字节)

f=open("ha.log","rb")

data=http://www.mamicode.com/f.read()

f.close()

print(type(data))

2.只写wb

f=open("ha.log")

2.文件常用的可执行方法补充(文件内置函数)

f.flush()    刷新

f.read(3)   意识是读取3个字符,其他的函数都是以字节为单位seek,tell,read,truncate

f.open(file,mode buffering) file相当于文件的位置 、路径,mode文件的打开模式,buffering可取值0,1,》1三个

0代表buffer关闭

mode取值

Character Meaning
‘r‘ open for reading (default)
‘w‘ open for writing, truncating the file first
‘a‘ open for writing, appending to the end of the file if it exists
‘b‘ binary mode
‘t‘ text mode (default)
‘+‘ open a disk file for updating (reading and writing)
‘U‘ universal newline mode (for backwards compatibility; should not be used in new code)

 1 r或rt 默认模式,文本模式读
 2 rb   二进制文件
 3 w或wt 文本模式写,打开前文件存储被清空
 4 wb  二进制写,文件存储同样被清A     
 5 a  追加模式,只能写在文件末尾
 6 a+ 可读写模式,写只能写在文件末 
 7 w+ 可读写,与a+的区别是要清空文件内容
 8 r+ 可读写,与a+的区别是可以写到文件任何位置 

encoding表示返回的数据采用编码方式,系统默认gbk  python默认utf-8

newline 可以采取的值,有none \n\r 

file()打开的是类和open()打开的是文件

-----------------------------------------------------------------------------------------------------------------------------------------------------------

1、打开文件读写

f=open(‘d:\a.txt‘,"r")

f.read(4)-------------#读取四个字节

f.read()--------------#读取到文件末尾

f.readline读一行

f.readline读所有行

line‘.strip()   删除换行符

f.write()  

f.write()

f.writeline()

f.writelines()

f.seek(offset,wherer)

f.r

file的其他方法:

F.close() 

#关闭文件。python会在一个文件不用后自动关闭文件,不过这一功能没有保证,最好还是养成自己关闭的习惯。如果一个文件在关闭后还对其进行操作会产生ValueError 

F.flush() 

#把缓冲区的内容写入硬盘 

F.fileno() 

#返回一个长整型的”文件标签“ 

F.isatty() 

#文件是否是一个终端设备文件(unix系统中的) 

F.tell() 

#返回文件操作标记的当前位置,以文件的开头为原点 

F.next() 

#返回下一行,并将文件操作标记位移到下一行。把一个file用于for ... in file这样的语句时,就是调用next()函数来实现遍历的。 

F.seek(offset[,whence]) 

#将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。 

F.truncate([size]) 

#把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。

python修炼6