博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python编程基础之三十六
阅读量:6238 次
发布时间:2019-06-22

本文共 1999 字,大约阅读时间需要 6 分钟。

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

读文件:

  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())  #读取一整行,直到碰到一个\n14 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 world2 with open('1.txt','r',encoding='utf-8') as fp:3     fp.seek(5)  #移动到hello后的空格位置4     print(fp.read(3))  #wo5     fp.seek(0)   #移动到开头6     print(fp.read(5))  #hello7     print(fp.tell())   #tell()显示当前指针位置
文件指针移动

文件操作还有csv操作,

1 import csv2 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 csv2 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.获取writer7     for line in l1:8         csv_writer.writerow(line)  #3.写入文件
csv写入

 

转载于:https://www.cnblogs.com/higer666/p/9459502.html

你可能感兴趣的文章