Python文件操作:
在Python中无需引入额外的模块来进行文件操作,Python拥有内置的文件操作函数(除了内置文件操作函数,Python语言也提供了额外的文件操作模块,它们具有更加强大的功能)
open文件操作:
open/文件操作
f=open('/tmp/hello','w')
open(路径+文件名,读写模式)
读写模式: r只读, r+读写, w新建(会覆盖原有文件), a追加, b二进制文件.常用模式
如:'rb','wb','r+b'等等
读写模式的类型有:文件操作:
rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )
目录操作:
目录操作:
os.mkdir("file") 创建目录
复制文件:
shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
复制文件夹:
shutil.copytree("olddir","newdir") olddir和newdir都只能是目录,且newdir必须不存在
重命名文件(目录)
os.rename("oldname","newname") 文件或目录都是使用这条命令
移动文件(目录)
shutil.move("oldpos","newpos")
删除文件
os.remove("file")
删除目录
os.rmdir("dir")只能删除空目录
shutil.rmtree("dir") 空目录、有内容的目录都可以删
转换目录
os.chdir("path") 换路径
注意:
如果使用'W',文件若存在,首先要清空,然后(重新)创建
如果使用'a'模式 ,把所有要写入文件的数据都追加到文件的末尾,即使你使用了seek()指向文件的其他地方,如果文件不存在,将自动被创建
文件: 数据的抽象和集合:
1.文件是存储在辅助存储器上的数据序列
2.文件是数据存储的一种形式
3.文件展现形态:文本文件和二进制文件
文本文件:二进制文件:
1.文件文件和二进制文件只是文件的展示方式
2.本质上,所有文件都是二进制形式存储
3.形式上,所有文件采用两种方式展示
文本文件:
1.文件文件和二进制文件只是文件的展示方式
2.本质上,所有文件都是二进制形式存储
3.形式上,所有文件采用两种方式展示
二进制文件:
1.直接由比特0和1组成,没有统一字符编码
2.一般存在二进制0和1的组织结构,即文件格式
3.适用于例如:.png文件、.avi文件等
1. 文件的全文本操作:
一次读入.统一处理:
fo = open(fname,"r") txt = fo.read()
...#对全文txt进行处理 fo.close()
按数量读取.逐步处理:
fo = open(fname,"r") txt = fo.read(2)
while txt != "": #对txt进行处理 txt = fo.read(2) fo.close()
2. 文件的逐行处理:
一次读入.分行处理:
fo = open(fname,"r")
for line in fo.readlines(): print(line) fo.close()
分行读入.逐步处理:
fo = open(fname,"r")
for line in fo: print(line) fo.close()
数据文件写入:
fo = open("output.txt","w+")
ls = ["China", "France", "America"] fo.writelines(ls)
fo.seek(0) for line in fo: print(line) fo.close()
还可以使用.json模块:
.json 文件中存储的数据结构为列表或字典
json.dump() 用来存储数据到json文件中,接受两个实参:要存储的数据和用于存储数据的文件对象
例:
import json numbers = [1, 2, 3, 4, 5, 6]
filename = 'number.json' with open(filename, 'w')
as f_obj: json.dump(numbers, f_obj