机器学习基础(六)Python知识串讲---基础文件操作

机器学习基础知识笔记

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是非常重要的文件形式(键值对封装)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值