前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2018年7月23日python系统模块os和文件io

2018年7月23日python系统模块os和文件io

作者头像
武军超
发布2018-09-27 11:28:06
1.1K0
发布2018-09-27 11:28:06
举报

今天遇到的新单词: 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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据保险箱
数据保险箱(Cloud Data Coffer Service,CDCS)为您提供更高安全系数的企业核心数据存储服务。您可以通过自定义过期天数的方法删除数据,避免误删带来的损害,还可以将数据跨地域存储,防止一些不可抗因素导致的数据丢失。数据保险箱支持通过控制台、API 等多样化方式快速简单接入,实现海量数据的存储管理。您可以使用数据保险箱对文件数据进行上传、下载,最终实现数据的安全存储和提取。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档