python 系列(9) 文件操作

Posted on Posted in python

## 一、文件操作

### 打开文件

1. open()

  1. x = open(r'./a.txt') # 只读方式打开,如果文件不存在,就会报错  

2. 参数常用值

- r 读
- w 写
- a 追加
- b 二进制
- \+ 读写模式

3. 写入文件

  1. x = open(r'./a.txt', 'w') # 用写的方式打开a.txt,并赋给f  
  2. x.write('hello') # 写入内容  
  3. x.write('world') # 追加写  
  4. x.close() # 关闭文件  

4. 读取文件

  1. f = open('a.txt', 'r') # r 代表读,不写参数,默认就是读文件  
  2. f.read(5) # 5为字符数,如果填写的是1,那么输出的就是h  
  3. # 输出'hello'  

5. 打开文件的其他方法

1. read() 读取全部内容
2. readline() 逐行读取

### 读取整个文件

  1. with open("foo.txt") as f: # 用with读取,会自动关闭文件  
  2.         contents = f.read()  
  3.         print contents  

### 逐行读取

  1. #!/usr/bin/env python  
  2. file_name = 'foo.txt'  
  3. with open(file_name) as f:  
  4.     for line in f:  
  5.         print line  

### 创建一个包含文件各行内容的列表

  1. #!/usr/bin/env python  
  2. file_name = 'foo.txt' # with中的文件操作,只能在with内部使用,如果再外面使用,就讲其存储在列表当中  
  3. with open(file_name) as f:  
  4.     lines = f.readlines()  
  5.     print lines  
  6. for line in lines:  
  7.     print line,  

### 使用文件的内容

  1. # 读文件   
  2. file_name = 'foo.txt'  
  3. with open(file_name) as f:  
  4.         lines = f.readlines()  
  5. string = ""  
  6. for line in lines:  
  7.         string += line.rstrip()  
  8. print string  
  9. print len(string)  

## 二、写文件

### 写入空文件

  1. #如果文件不存在,则创建。如果文件存在,就清空,再写入  
  2. #!/usr/bin/env python  
  3. file_name = 'foo1.txt'  
  4. with open(file_name,'w') as f:  
  5.     f.write('123\n')  
  6.     f.write('123\n')  
  7.     f.write('123\n')  

### 追加文件

  1. file_name = 'foo1.txt'  
  2. with open(file_name,'a') as f:  
  3.     f.write('123\n')  
  4.     f.write('123\n')  
  5.     f.write('123\n')  

### 打开文件权限

- r(read) 读
- w(write) 写
- a(append) 追加

> 单纯使用这三种方式打开文件,只拥有一种打开权限,要么读,要么写

- r+ 读写 不创建新文件 文件读写指针在开头
- w+ 读写 创建新文件 读写指针在开头 如果文件存在会覆盖这个文件之前的内容
- a+ 读写 创建新文件 读写指针在末尾 不会覆盖这个文件之前的内容

  1. #!/usr/bin/env python   
  2. fd = open("1.txt", "w+") # 读写权限打开文件,清空文件,文件不存在则创建  
  3. fd.write('123')  
  4. fd.seek(0,0)  
  5. print 'w+ open' +  fd.read() + 'read and write permission'  
  6.       
  7. fd = open("1.txt", "r+")   
  8. fd.write('456')  
  9. fd.seek(0,0)  
  10. print 'r+ open' + fd.read() # 读写权限打开文件,清空文件,文件不存在则报错  
  11. fd.close()  
  12.   
  13. fd = open("1.txt", "a+") # 读写权限打开文件,不清空文件内容,在文件末尾新增写入的内容,文件不存在则创建  
  14. fd.write('789')  
  15. fd.seek(0,0)  
  16. print 'a+ open' + fd.read()  
  17. fd.close()  

> seek() 函数,修改访问文件的位置,语法 file_object.seek(offset,whence)

offset 文件读写的指针位置

whence 选项
- 0 表示从头开始计算
- 1 表示以当前位置为原点开始计算
- 2 表示以文件末尾为原点进行计算

  1. ''' 
  2. 1 
  3. 2 
  4. 3 
  5. 4 
  6. 5 
  7. '''  
  8. # 打开文件  
  9. fo = open("1.txt", "rw+")  
  10. print "文件名为: ", fo.name  
  11.   
  12. line = fo.readlinereadline()  
  13. print "读取的数据为: %s" % (line) # 1  
  14.   
  15. # 重新设置文件读取指针到开头  
  16. fo.seek(0, 0)  
  17. line = fo.readlinereadline()  
  18. print "读取的数据为: %s" % (line) # 1  
  19.   
  20. # 关闭文件  
  21. fo.close()  
» 转载请注明来源:呢喃 » python 系列(9) 文件操作

Leave a Reply

Your email address will not be published. Required fields are marked *

eighteen − nine =