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