机器学习基础知识笔记
1. 文件操作所涉及的模块
Python os 模块提供了一个统一的操作系统接口函数(特别对文件),os模块能在不同操作系统平台(如nt或posix)中的特定函数间自动切换,从而能实现跨平台操作。每一个编程语言都有一套特定的接口,去操作文件系统。
- 在程序编程中,通过文件的路径来访问(写入/读取)指定的文件。访问文件路径分为两类方式:绝对路径和相对路径。
- os模块 是python语言的内置模块,但不属于脚本默认导入模块,因此在使用的时候需要使用Import关键字预先导入后方可使用import os 。
- 查看当前文件的绝对地址
使用__file__,其为Python语言内置的关键对象,专门获取当前文件对象的引用。
import os
import day04.m1 as m1
print(m1.a)
print(m1.test(10, 20))
# 获取路径的方式
print(os.getcwd()) # 获得当前文件所在的路径信息,不包括文件本身名称
print(__file__) # 获取文件路径信息的方式
print(os.path.realpath(__file__))
print(os.path.realpath('m1.py'))
print(os.path.dirname(os.path.realpath('m1.py')))
print(os.path.basename(__file__)) # 获取文件名称
print(os.path.getsize('m1.py')) # 得到文件大小
2. 文件信息获取
import os
import time
# 文件的信息
path = os.path.realpath('m1.py')
t1 = os.path.getctime(path) # 获取文件的创建时间
t2 = os.path.getatime(path) # 获取文件上次的访问时间
t3 = os.path.getmtime(path) # 获取文件的修改时间
print(t1)
print(t2)
print(t3)
# 时间戳的格式化输出
date = time.localtime(t1) # 转成时间
print(date)
print(time.strftime("%Y-%m-%d %H:%M:%S", date)) # 时间格式化
判断是文件还是路径:
# 判断是文件夹还是文件
result = os.path.isdir('m1.py') # 相对路径
print(result)
实现遍历特定路径下的所有文件代码实现:
import os
# 遍历某个文件夹下的所有文件和目录信息 打印输出
basePath = "E:\Project"
print(os.listdir(basePath))
# 递归实现遍历特定目录下文件夹和文件信息
def listFile(path):
fileList = os.listdir(path)
for file in fileList:
filePath = os.path.join(path, file) # 路径1 + “\” + 路径2
if os.path.isdir(filePath):
print(filePath)
listFile(filePath)
pass
else:
print(filePath)
pass
pass
pass
listFile(basePath)
3. 文件夹的创建和删除
示例代码如下:
# 创建和删除目录
os.mkdir("folder1")
if os.path.exists("folder2"):
os.rmdir("folder2")
pass
else:
os.mkdir("folder3")
pass
最后的实验结果:
4.文件的读写操作
读写文件代码如下:
import os
# 初始程序
fp = open("hello", mode='r', encoding="utf-8")
txt = fp.read()
print(txt)
fp.close()
# 添加异常捕获
# python异常处理机制
try: # try if else while for 不构成变量的作用域范围
fp = open("hello2", mode='r', encoding="utf-8")
txt = fp.read()
print(txt)
pass
except FileNotFoundError as e:
print(e)
pass
finally:
fp.close()
pass
# 解释不构成变量的作用域范围
if True:
a = 1
# 在if中定义的变量,在if外可以正常使用
print(a)
# 写操作,注意w模式会把文件中原有内容覆盖
with open('world', mode='w', encoding='utf-8') as fp: # 追加内容使用a
fp.write("春花秋月何时了,往事知多少\n")
pass
with open('world', mode='a', encoding='utf-8') as fp: # 追加内容使用a
fp.write("小楼昨夜又东风,故国不堪回首月明中")
pass
文件目录如下:
文件内容如下:
终端输出如下:
5. 二进制文件的读写
我们使用如下图片进行实验,命名为c.jpeg
代码如下:
# 读二进制文件
with open('c.jpeg', mode='rb') as fp:
data = fp.read()
print(data)
pass
# 写二进制文件
with open('a.jpeg', mode='wb') as fp:
fp.write(data)
pass
读二进制文件终端输出部分如下:
写入二进制文件实验结果如下:
6. 文件的形式
JSON、csv、excel,是常见的文件形式,其中JSON是非常重要的文件形式(键值对封装)。