python 文件I/O
一、文件file
1、方法涉及到file的创建、打开、写入、读取、关闭
2、属性包括名称、是否已关闭、模式
#!/usr/bin/python
# -*- coding:utf-8 -*-
#file对象相关方法
new_file = open("test.txt", a+)
若打开file必须要close文件,以防忘记close文件,处理如下:
with open("test.txt", a+) as f:
print(f.read())
若读取文件非文本,为二进制文件,如图片,视频等。处理如下:
open(‘test.txt’, a+, encoding=‘gbk’)
若存在非法编码,处理如下:
open(‘test.txt’, a+, encoding=‘gbk’, errors=‘ignore’)
因read()读的内容为全部,内容太多处理如下:
多次调用f.read(size)或者f.readline()
针对常用的读取配置文件,处理如下:
for line in f.readlines ():
print(line.strip()) #把末尾的/n删掉
new_file.write("I am a bride.")
new_file.read(13)
new_file.close()
cat test.txt
#file对象相关属性
print "文件名:", new_file.name
print "是否已关闭:", new_file.closed
print "访问模式:", new_file.mode
3、对file进行操作,需要权限,借助os模块
对file进行重命名、删除操作
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
os.rename("test.txt", "test1.txt")
os.remove("test1.txt")
二、目录dir
file文件需要存在于目录下,对目录的操作方法有创建、改变、删除、
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
#只针对最后一级目录
os.mkdir("testSet")
os.getcwd()
os.chdir("/home/testSet1")
os.rmdir("testSet1")
三、file在目录下
1、数据写入file中,然后放到指定目录下
#!/usr/bin/python
# -*- coding:utf-8 -*-
import os
def save_date_to_file(date2, file_path, mode="a+", encoding="utf-8"):
file_path_dir = os.path.dirname(file_path)
if not os.path.exists(file_path_dir):
#可创建多级目录
os.makedirs(file_path_dir)
try:
with open(file_path, mode, encoding=encoding) as f:
f.write(data2)
return True, "保存成功"
except Exception as e:
return False, ‘保存失败:{}’.format(e)
if __name__=="__main__":
data2 = '我是新的内容哦!'
file_path = '/home/testSet1'
save_data_to_file(data2, file_path, encoding='gbk')
#直接创建新的目录
#file_dir = os.path.join("/home/testSet1", "test2.txt")