中国史之【夏制《禹刑》】:
禹刑是中国夏代刑法的总称。因夏朝的开国君主为禹,故名。相传禹继尧舜之位建立了中国历史上第一个奴隶制王朝,并创制了肉刑。夏朝法律规定了五种刑罚,共三千条。禹刑的具体内容已散佚。
-来源:全历史APP
今天讲python的OS模块,属于文件系统功能。有需要的也可以直接去我的github查看全部笔记:
https://github.com/JackKoLing/python_notes_with_ten_days
俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。对于环境的配置,可以参考以下两篇:
- win10版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(win10版) - Linux版 @小保,公众号:CV之道
【深度学习环境配置】手把手实战配置深度学习环境(Ubuntu20.04版)
1 目录相关函数
- chdir():改变工作目录
- chroot():设定当前进程的根目录
- listdir():列出指定目录下的所有文件名
- mkdir():创建指定目录
- makedirs():创建多级目录
- getcwd():获取当前路径
- rmdir():删除文件目录
- removedirs():删除多级文件目录
import os # 将linux或c语言的一些目录操作封装成文件管理系统
os.mkdir('../day6/dir') # 创建文件夹
os.getcwd() # 获取当前路径,注意linux的系统是/,而win系统是\\,使用了转义
>>>
'd:\\learnCode\\learnPython\\day6'
os.chdir('..') # 相当于cd到其他路径,‘..’表示上一级,‘.’表示当前级
print(os.getcwd())
>>>
d:\learnCode\learnPython
os.chdir('day6')
os.stat('c.txt') # 获取文件的相关状态信息
>>>
os.stat_result(st_mode=33206, st_ino=1125899910386191, st_dev=2048257096, st_nlink=1, st_uid=0, st_gid=0, st_size=8, st_atime=1595919443, st_mtime=1595919443, st_ctime=1595919439)
2 文件相关函数
- mkfifo():创建先进先出管道
- mknod():创建设备文件
- remove():删除文件
- unlink(): 删除链接文件
- rename():重命名
- stat():返回文件状态信息
- symlink():创建符号链接
- utime(): 更新文件时间戳
- tmpfile():创建并打开新的临时文件
os.rename('c.txt', 'newc.txt')
3 访问权限相关函数
- access():判定指定用户对某个文件是否有访问权限
- chmod(): 修改权限
- chown():修改所属主、属组
- umask():设置默认权限模式
print(os.access('b.txt', 0)) # 查看用户的访问权限
>>>
True
4 文件描述符相关函数
- open(): 较低IO的打开文件
- read(): 较低IO的读文件操作
- write(): 较低IO的写文件操作
help(os.open) # 这是较低级别的打开
>>>
Help on built-in function open in module nt:
open(path, flags, mode=511, *, dir_fd=None)
Open a file for low level IO. Returns a file descriptor (integer).
If dir_fd is not None, it should be a file descriptor open to a directory,
and path should be relative; path will then be relative to that directory.
dir_fd may not be implemented on your platform.
If it is unavailable, using it will raise a NotImplementedError.
5 设备文件相关函数
- mkdev():创建设备
- major(): 获取指定设备的主设备号
- minor():获取指定设备的次设备号
6 文件路径(os.path)相关函数
- basename(): 文件基名
- dirname():文件目录名
- join(): 将多个离散路径整合成一个路径
- split(): 返回dirname(), basename()元组
- splitext(): 返回(filename, extension)元组
import os.path
cwd = os.getcwd()
dir1 = os.path.dirname(cwd)
file1 = os.path.basename(cwd)
print(cwd)
print(dir1)
print(file1)
print(os.path.join(dir1, file1))
print(os.path.split(os.getcwd()))
>>>
d:\learnCode\learnPython\day6
d:\learnCode\learnPython
day6
d:\learnCode\learnPython\day6
('d:\\learnCode\\learnPython', 'day6')
返回相关信息:
- getatime():返回指定文件的最近访问时间
- getctime():windows环境下是输出文件创建时间;如果是linux环境下ctime代表“状态时间”
- getmtime():返回文件最近修改时间
- getsize(): 返回文件的大小(字节)
判断查询:
- exists(): 判断指定文件是否存在
- isabs(): 判断指定的路径是否为绝对路径
- isdir(): 判断指定的路径是否为目录
- isfile(): 判断指定的路径是否为文件
- islink(): 判断指定的路径是否为符号链接
- ismount(): 判断指定的路径是否为挂载点
- samefile(): 判断两个路径是否指向了同一个文件
7 练习
判断指定文件是否存在,存在则打开,让用户通过键盘反复输入多行数据,追加保存至此文件中
import os
import os.path
filename = 'b.txt'
if os.path.isfile(filename):
f1 = open(filename, 'a+')
while True:
line = input("Enter something>")
if line == 'q' or line == "quit":
break
f1.write(line+'\n')
f1.close()
(补充)
实现对象持久存储:
- pickle,常用来保存字典数据
- marshal
- DBM接口
- shelve模块
import pickle
d1 = {'x':123, 'y':567, 'z':'hello'}
f5 = open('dict.txt', 'ab+') # 注意,必须是二进制文件,所以加个b,不然出错
pickle.dump(d1, f5) # 将对象保存在f5文件中
f5.flush()
f5.close()
f6 = open('dict.txt', 'rb+') # 注意,写出也是要b+,序列形式
d2 = pickle.load(f6)
print(d2)
>>>
{'x': 123, 'y': 567, 'z': 'hello'}
【声明】:学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容,下期介绍python的函数。
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。
![](https://i-blog.csdnimg.cn/blog_migrate/37d6a533cafcd7c7f3a6d3d4d64ac915.png)