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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黄Java的地盘

如何实现一个HTTP请求库——axios源码阅读与分析

在前端开发过程中,我们经常会遇到需要发送异步请求的情况。而使用一个功能齐全,接口完善的HTTP请求库,能够在很大程度上减少我们的开发成本,提高我们的开发效率。

17320
来自专栏锦小年的博客

python学习笔记7.1-内建模块os

Python编程语言优势特点比较突出,已经出现就凭借这些功能优势吸引着开发人员的眼球。在Python这一语言中,有一种标准模块叫做os模块,Python os模...

20660
来自专栏IT笔记

如何查看当前目录下的文件夹大小

du -sh*查看当前目录下的文件夹大小 u 命令 用途 概述磁盘使用。 语法 du [ -a | -s ] [ -k ] [ -m ] -g [ -r...

30450
来自专栏从零开始学 Web 前端

linux下实现进度条小程序

我们平常总会在下载东西或者安装软件的时候看到进度条,这里我们就在linux下实现这个进度条的功能。

34350
来自专栏Web项目聚集地

Linux知识点总结

24130
来自专栏Golang语言社区

Golang语言社区--【游戏服务器知识】多线程并发

引言:上篇文章说到了多进程并发式的服务端模型,如上一篇文章所述,进程的频繁创建会导致服务器不堪负载,那这一篇博客主要讲述的是线程模型和线程池的方式来提高服务端的...

35640
来自专栏Java进阶

volatile和synchronized 实现原理的差别

35970
来自专栏哲学驱动设计

WCF 框架运行时类图

本文画出了 WCF 框架运行时的重点类之间的类关系图。 Binding 一个 Binding 由多个 BindingElement 组成。BindingElem...

20350
来自专栏Python绿色通道

Python分布式进程

分布式进程是指的是将Process进程分布到多台机器上,充分利用多台机器的性能完成复杂的任务。在Thread和Process中,应当优选Process,因为Pr...

20510
来自专栏difcareer的技术笔记

如何快速定位native方法在对应so中的位置前言原理

在逆向的时候,有些应用有一大堆的so,而且都是提前加载好,有的so甚至做了处理,很难看出函数名。本文讲述的方法可以快速定位:

12820

扫码关注云+社区

领取腾讯云代金券