python编程基础之三十六

文件处理:文件处理包括读文件,写文件

读文件:

  1、打开文件

  2、读取文件

  3、关闭文件

写文件:

  1、打开文件

  2、写如文件

  3、关闭文件

无论是读取文件还是写文件都时需要打开文件,和关闭文件

打开文件:

fp = open(file [, mode='r',  encoding=None, errors=None])

  file:文件路径,可以是相对路径和绝对路径

  mode:文件打开模式

 

r 只读
w 写之前会清空文件的内容
a 追加的方式,在原本内容中继续写
r+ 可读可写
w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
b rb、wb、ab、rb+、wb+、ab+意义和上面一样,用于二进制文件操作

  encodeing: 文件编码方式,不用于二进制文件,一般是utf-8,gbk

    errors:指定如何处理编码和解码错误 ,适用于文本文件

  返回值:一个可迭代的文件对象一般用fp

读取文件常用函数:

      read([size])          读取文件(读取size字节,默认读取全部),

      readline([size])    读取一行,如果指定size,将读入指定的字符数,    

      readlines()           把文件内容按行全部读入,返回一个包含所有行的列表

 1  #打开文件
 2 fp = open('qfile.txt','r',encoding='utf-8') 
 3 
 4 #读取文件全部内容
 5 #content = fp.read()  
 6 #print(content)
 7 
 8 #读取指定字符数,包括行尾的换行符\n
 9 # print(fp.read(20))
10 
11 #读取一行
12 # print(fp.readline(5))  #读取指定字符数
13 # print(fp.readline())  #读取一整行,直到碰到一个\n
14 
15 #读取所有行,返回列表
16 # print(fp.readlines())  
17 
18  #关闭文件
19 fp.close() 
文件

关闭文件 :fp.close

文件的指针移动:file_obj.seek(offset,whence=0),

第一个参数表示偏移量,必须是正数

官方文件里面说的第二个参数whence可以是0,1,2

0 表示开始文件开始位置,

1 表示当前位置

2 表示文件结尾

但是使用1,2的时候总是报错,还没找到解决办法

返回值是新的位置

1 #1.txt内容:hello world
2 with open('1.txt','r',encoding='utf-8') as fp:
3     fp.seek(5)  #移动到hello后的空格位置
4     print(fp.read(3))  #wo
5     fp.seek(0)   #移动到开头
6     print(fp.read(5))  #hello
7     print(fp.tell())   #tell()显示当前指针位置
文件指针移动

文件操作还有csv操作,

1 import csv
2 with open(r'csv\winequality-red.csv') as fp:  #1.打开文件
3     #delimiter指定分隔符
4     csv_reader = csv.reader(fp,delimiter=';')  #2.获取csv读取器
5     header = next(csv_reader) #获取第一行的标题
6     print(header)
7     for line in csv_reader: #3.遍历所有的行
8         print(line)
csv读取
1 import csv
2 l1 = [[1,2,3],[4,5,6],[7,8,9]]
3 #打开文件时,要添加newline=''参数,否则会多一个空行
4 with open('1.csv','w',newline='') as fp: #1.打开文件
5     #delimiter='\t'指定数据分隔符
6     csv_writer = csv.writer(fp,delimiter='\t')  #2.获取writer
7     for line in l1:
8         csv_writer.writerow(line)  #3.写入文件
csv写入

 

posted @ 2018-08-11 13:33  嗨哥-higer  阅读(137)  评论(0编辑  收藏  举报