从文件读取数据到程序中, 并且从程序中将数据存储到文件, 叫做文件输入和输出
Python文件打开模式分为2种:
文本模式:普通txt等文本文件,可以用文本模式打开读写操作。w:写 r:读 a:追加
二进制模式:图片,视屏等格式,用二进制模式打开读写操作。加‘b’就是二进制模式 wb:二进制写 rb:二进制读 ab:二进制追加
文本模式的区别:
文本模式会进行换行符的转换,二进制模式不会进行换行符的转换。
例:各操作系统下换行符的区别
程序中的换行符是:\n
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。如果该文件无法被打开,会抛出 OSError。
open(file, mode=‘r‘)
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
f.close() 关闭文件,必须要关闭文件。因为文件打开的数量有限,用好要即使关闭。
f = open(‘a.txt‘,‘r‘) f.close()
‘r‘ :以只读方式打开文件(默认)
# 2 读取文件 fb = open(‘b.txt‘,‘r‘) # read 函数默认读取文件中所有的数据 my_content = fb.read() fb.close() print(my_content)
‘w‘ :以写入的方式打开文件,会覆盖已存在的文件,文件不存在会创建
# 使用open函数打开一个文件 fa = open(‘a.txt‘,‘w‘) my_content = ‘hello world \n第一写入文件‘ fa.write(my_content) # 关闭文件 fa.close()
‘a‘ 以写入模式打开,如果文件存在,则在末尾追加写入
f = open(‘a.txt‘, ‘a‘) f.write(‘\nhello world!‘) f.close()
写操作方法:write writelines
f.write(str): 将字符串str写入文件
f.writelines(seq): 向文件写入字符串序列seq,seq应该是一个返回字符串的可迭代对象
"""1. write 函数用法""" f = open(‘a.txt‘, ‘w‘) # write 函数一次写一行 # f.write(‘hello world‘) # writelines 一次可以写多行,参数是一个列表,列表每个元素都是一行数据,如果没有换行,是因为没写换行符。 lines = [‘aaa\n‘, ‘bbb\n‘, ‘ccc\n‘] f.writelines(lines) f.close()
读操作方法: read readline readlines
f.read([size=-1]) :从文件读取指定的字节数,如果未给定或为负则读取所有
f.readline(): 一次读取一行数据
f.readlines:一次读取所有行数据,读取所有行并返回列表
f.read()
# read 没有指定参数,则读取文件中的所有数据 # read 指定参数,则读取参数指定个数的数据 f = open(‘a.txt‘,‘r‘) content = f.read(2) # content = f.read() f.close() print(content)
read 没有指定参数,则读取文件中的所有数据
read 指定参数,则读取参数指定个数的数据
f.readline()
"""一次读取一行数据""" f = open(‘a.txt‘,‘r‘) content = f.readline() content2 = f.readline() print(content) print(content2) f.close()
f.readlines()
"""一次读取所有行数据""" f = open(‘a.txt‘,‘r‘) content = f.readlines() print(content)
f.close()
读取所有行并返回列表
小例子:使用readlines ,打印也如下,换行打印。
"""一次读取所有行数据""" f = open(‘a.txt‘,‘r‘) lines = f.readlines() print(lines) for line in lines: if line[-1] == ‘\n‘: print(line[:-1]) else: print(line) f.close()
小例子:输入要拷贝的文件名,进行复制一份,改个名字存储。
old_file_name = input(‘请输入要拷贝的文件名字:‘)
new_file_name = old_file_name + ‘.bk‘
f_old = open(old_file_name,‘rb‘)
f_new = open(new_file_name,‘wb‘)
content = f_old.read()
f_new.write(content)
f_old.close()
f_new.close()
文件重命名:rename()方法
rename()方法需要两个参数,当前的文件名和新文件名。
import os """文件重命名""" os.rename(‘b.txt.bk‘,‘12.txt‘)
删除:文件删除(remove),文件夹删除(rmdir)
import os """文件和文件夹删除""" # 如果只写文件名,默认只在当前目录下找文件,如果找不到就报错 # 都可以指定路径删除 os.remove(‘C:/Users/Administrator/Desktop/zyc123.txt‘) # os.rmdir(‘C:/Users/Administrator/Desktop/gaoweiguang‘)
创建目录:mkdir
import os """创建目录""" os.mkdir(‘biji‘) # os.rmdir(‘biji‘) # 删除目录
获得指定目录下的文件列表:listdir
import os """获得指定目录下的文件列表""" content = os.listdir() print(content)
获得工作目录:getcwd 设置工作目录:chdir
import os """获得和设置工作目录""" cwd = os.getcwd() # print(cwd) # F:\2020软件测试\heima软件测试----百老汇整理----\python代码\day6 os.chdir(‘C:/Users/Administrator/Desktop‘) os.mkdir(‘gaoweiguang‘)
原文:https://www.cnblogs.com/zhangyangcheng/p/12441387.html