python--文件操作

1、文件的作用
  存储数据,读写文件是最常见的 I/O 操作

2、打开和关闭文件

# 步骤:
# 1)打开文件,获取文件描述符
# 2)操作文件描述符-->读/写
# 3)关闭文件close()-->文件读写完成后应该及时关闭:1、占用资源;2、数据丢失
f = open('test.txt', 'rw+')    # 打开文件
print(f.read())
f.close()    # 关闭文件

3、文件打开模式的区别
  1)文件、文本模式和二进制模式
    Windows换行:
    Linux换行:
    mac换行:
    文件:文件本质上都是以二进制的模式存储在磁盘上的,用不同编译器打开会有编译的问题。
    文本模式:文件用文本模式操作,会进行换行符的转换。不同操作系统之间文本模式的不同,本质上就是因为换行符的不同
    二进制模式:文件用二进制模式操作,不会进行换行符的转换

  2)open函数

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

  参数说明(主要关注file和mode):

  • file参数:表示文件的路径,可以是绝对路径也可以是相对路
  • modle参数:
modle 说明
read
w write 覆盖原数据,文件不存在则新建
a append 追加,文件不存在则新建
r+ 在r的基础上增加了可写功能,首位开始更新文件内容
w+ 在w的基础上增加了可读功能,会将文件内容清空
a+ 在a的基础上增加了可读功能,内容只能加在文件末尾
rb read binary
wb  write binary
ab append binary
  • abuffering 表示缓冲区的策略选择
  • encoding     指名文件的编码,仅适用于文本文件
  • errors        指明编码和解码错误时怎么样处理,不能在二进制模式下使用
    • 1)当指明为’strict’时,编码出错则抛出异常ValueError。 
    • 2)当指明为’ignore’时,忽略错误。
    • 3)当指明为’replace’时,使用某字符进行替代模式,比如使用’?’来替换出错的字符。
    • 4)其它相应还有surrogateescape/xmlcharrefreplacs/backslashreplace。
  • newline     控制文本模式下一行的结束字符。可以是None,’’, , , 等 
  • closefd      用来给一个文件句柄传进来,当退出文件使用时,不对文件句柄进行关闭。如果传递一个文件名进来,这个参数无效,必定为True方式。
  • opener      用来实现自己定义打开文件方式,较复杂

4、如何在程序中进行文件读写

# 1)读写操作
f = open('test.txt', 'rw')
# 文件写操作
f.write('第一次写数据!')
# 文件读操作    read(num)    num,文件字数
print(f.read())
f.close()

# 2)写函数    write() writelines()
f = open('test.txt', 'w')
# write() 一次写入一行数据
f.write('第一次写数据!')
# writelines() 一次写入多行数据,列表元素中一个元素代表一行
lines = ['a ', 'b ', 'c '] f.writelines(lines) f.close() # 3)读函数 read(num) readline() readlines() f = open('test.txt', 'r') # read(num) num,文件字数,为空则读取文件所有数据 print(f.read(5)) # readline() 依次读取一行数据 print(f.readline()) # 读取第一行 print(f.readline()) # 读取第二行 print(f.readlines()) # 一次读取所有行,返回列表
# 小练习:读取文件并去除空格,输出在屏幕
for line in f.readlines():   if line[-1] == ' ':     print(line[:-1])   else:     print(line) f.close()

5、with语句(语法糖),执行文件后自动关闭文件。

with open('test.txt', 'w') as f:
    f.write('我使用with后重新覆盖范本内容,并赋值给f!!!')
with open('test.txt', 'a') as f:
    f.write('
我再多说一句,我现在不需要再使用close()去保存文件了,直接使用with语句就可以了!')
with open('test.txt', 'r') as f:
    print(f.read())

6、文件操作

# 1)文件重命名
import os
os.rename('a.bk.txt', 'hello.txt')

# 2)文件删除
os.remove('hello.txt')

# 3)获得文件名列表
os.listdir()

# 4)创建和删除文件夹
os.mkdir('abc')
os.rmdir('abc')
原文地址:https://www.cnblogs.com/xiaohuboke/p/13574241.html