今天遇到的新单词:
attrubute: n属性
cwd全称: Current Working Directory当前工作目录
argument: n参数
binary n二进制
paste v粘贴
destination n目标
计算机方面的学习可以到菜鸟教程RUNOOB网站查看资料
以后记得学习网络安全
要在stack overflow网站注册账号
1秒(s)=1000毫秒(ms),计算机系统的计时是从1970年1月1日的00:00:00开始的,单位
为ms
***********************************
python如果直接操作系统文件,需要用到一个模块:os(Operation System)模块,系统文件
又分为文本文件和二进制文件,能用记事本打开的是文本文件,用记事本打开乱码的是二进制文件
遍历一个盘里面的文件夹用的python命令是:
import os
os.listdir("f:")
创建一个文件夹用的命令是:
os.makedirs("f:/oswork") #或者不要斜杠也可以
文件夹里面再创建文件夹用的是makedirs(),也可以只创建一个文件夹
只创建一个文件夹用mkdir()
创建一个文件的命令是:
先切换到相应的盘符才能创建文件:os.chdir("f:")
然后再建立文件:open("f:/oswork/test.txt","x")?x的由来
重命名文件夹:
os.rename("f:/oswork","shide")
删除文件夹:
os.removedirs("f:/oswork")
os.rmdir("f;/oswork")两个都可以
删除文件:
os.remove("f:/oswork/test.txt")
os.getcwd() 获取当前路径,不要参数
os.chdir("d:") 切换盘符,括号中填写要切换的盘符
os.path.dirname("") 获取一个文件前面的路径,括号中要添件文件整个的路径
>>> os.path.dirname("f:/oswork")
'f:/'
pycharm中按着ctrl再点击方法名能查看它的使用方法
直接带盘符的是绝对路径c:
window中切换到指定的路径与字符的大小写无关,其他系统大小写必须要写对
EOF : end of file文件的结尾
dat文件在python中一般存储二进制数据,因为文本文件容易被修改,存储为二进制文件防止被篡改
dll文件:
DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,
是软件文件类型。在Windows中,许多应用程序并不是一个完整的可执行文件,
它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中。当我
们执行某一个程序时,相应的DLL文件就会被调用。一个应用程序可使用多个DLL文件,
一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件。
文本文件是字符组成的,二进制文件是字节组成的
提示1:dir(os) # 系统操作模块
提示2:dir(os.path) # 系统文件路径操作模块
提示3:灵活使用help()
扩展:dir(sys) # 和解释器交互的模块
********************************
python操作操作系统中的文本文件:
文本文件的内容:文件内容
写入文件——写入指定内容
是否追加[不追加~每次写入数据时覆盖原有数据]
读取文件——读取文件中的内容
python提供了打开文件的函数:open()
>>>>> open(file, mode='r', buffering=-1, encoding=None,
errors=None, newline=None, closefd=True, opener=None)
参数列表:
file: 要操作的文件对象、或者文件名称[路径(相对路径|绝对路径)]
mode: 操作方式
t: text,默认操作;文本文件
b: binary,操作二进制文件
a: append 追加操作文件
mode操作方式:
w:write:向文件中写入内容 写的时候只写一个w或r就行,默认后边会加一个t->wt/rt
r:read:从文件中读取内容
+:打开一个文件既可以写入数据也可以读取数据
>> f = open("随堂笔记.txt") f变量~文件对象
>>> dir(f)
[ 'buffer缓存', 'close关闭', 'closed关了吗?', 'detach',
'encoding编码', 'errors错误', 'fileno', 'flush刷新',
'isatty', 'line_buffering', 'mode模式', 'name名称',
'newlines一行', 'read读取', 'readable可以读取吗?', 'readline读取一行',
'readlines全部读取每一行作为一个元素的列表',
'seek跳转指定位置|偏移', 'seekable可以偏移吗?', 'tell',
'truncate', 'writable可以写入吗?', 'write写数据', 'writelines'写一个列表进入]
案例开发:opend1.py:读取文本文件数据
opend2.py:向文本文件中写入数据
opend3.py:拷贝文件底层代码
系统中的文件:文本文件|二进制文件
拷贝二进制文件:可能出现问题导致文件损坏!
*********************************
操作系统中的二进制文件:
和文本文件的操作基本没有区别,唯一的区别就是将操作模式mode=r->mode=rb/wb
操作模式b->binary->二进制
open(file, mode='rb/wb')
rb:二进制读取文件
wb:二进制写入文件
注意问题:
如果要操作二进制文件,read()方法使用要慎重
不要直接read()->会造成整个二进制文件会被一次加载到系统内存中
容易造成内存溢出
操作时《需要给read()函数添加一个每次读取数据的缓存每次读取一定的数据
扩展:文件操作:快捷处理方式:with语句,使用with语句不用再手写关闭,它运行完会自动关闭
**********************************
程序中的数据存储:
有独立的数据类型,不能直接按照二进制的方式进行操作
data_serializer/ds01.py
TypeError
解决方案:有两种
1. 通过python提供的标准库,将程序中的数据转换成字符串~进行操作
2. 通过python提供的标准库,将程序中的数据转换成字节~进行操作
(5)操作程序中的字符串数据[特殊:JSON]
json模块[python提供的标准库]
(6)操作程序中的对象数据[序列化:反序列化]
pickle模块[python提供的标准库]
************************************
os模块和io模块的总结:
总结:文件IO操作
1. 文件操作
和操作系统交互,python标准库:os、os.path
提示:dir(os);结合help()完成对os模块中常见函数的熟悉
dir(os.path) 熟悉os.path模块下常见的函数
创建文件open、创建一级文件夹mkdir、创建多级文件夹makedirs
删除文件remove\rmdir\removedirs
重命名文件:rename
查看文件信息:getctime()/getatime()/getmtime()/getsize()
create access modify
遍历文件:isfile()/isdir()/listdir()/scandir()
2. 文件内容操作
文本文件内容
f = open(filename, mode="rt/wt")
f.write(str)/writelines(list)
f.read()/readline()/readlines()
二进制文件内容
f = open(filename, mode="rb/wb")
f.write(bytes/bytearray)
f.read()
快捷操作:with语句:自动打开和关闭文件
with open(file, mode="..") as f:
f.write()/read()
程序数据内容
文本文件操作:json:数据类型的转换
将一个程序中的数据,写入到文本文件中
json.dump(dict, open(file, mode="r"))
从文本文件中读取数据到程序中~直接转换成对应的类型
data = json.load(open(file, mode="w"))
二进制文件操作:pickle:数据的文件操作
将程序中的数据,写入到二进制文件中
pickle.dump(dict, open(file, mode="wb"))
从二进制文件中读取数据到程序中
data = pickle.load(open(file, mode="rb"))
***************************************
对比java:jvm虚拟机->jvm屏蔽了系统安全操作,用java并不能直接对系统文件进行操作
但是python是运维出身,Python的解释器->允许Python对系统文件执行危险操作!
所以python对于系统文件的操作权限远远大于java