Python3 模块相关及输入输出模式
一、模板简介
- import module1[, module2 (一个模块只会被导入一次,不管你执行了多少次import。这样可以防止导入模块被一遍又一遍地执行)
- from modname import name1 (引入那么name1库的特定函数)
- from modname import * (把一个模块的所有内容全都导入到当前的命名空间)(不建议使用)
二 、模板探究
- 模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用 。
- 当模块中导入其他模块时候(使用 import 来导入),被导入的模块的名称将被放入当前操作的模块的符号表中。或者通过使用 import 将指定的函数名导入到当前的操作模块。例如:from fibo import fib, fib2 (注:这种导入的方法不会把被导入的模块的名称放在当前的字符表中)。此外,还有一种,一次性的把模块中的所有(函数,变量) 名称 (除了一些以单一下划线( _ )开头的名字)都导入到当前模块的字符表 。不推荐使用。
- __name__属性
- 一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行 。
- dir( ) 函数
- 内置的函数 dir( ) 可以找到模块内定义的所有名称。以一个字符串列表的形式返回 。
- 如果没有给定参数,那么 dir() 函数会罗列出 当前模块 中定义的所有名称 。
- 标准模块
- Python 本身带着一些标准的模块库,有些模块直接被构建在解析器里 。还有一些组件会根据不同的操作系统进行不同形式的配置,比如 winreg 这个模块就只会提供给 Windows 系统。
- 有一个特别的模块 sys ,它内置在每一个 Python 解析器中。变量 sys.ps1 和 sys.ps2 定义了主提示符和副提示符所对应的字符串 。
- 包
- 包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。
- 在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。
- 目录只有包含一个叫做 __init__.py 的文件才会被认作是一个包,这个文件可以放一个空的 :file:__init__.py 或者 包含一些初始化代码或者为 __all__变量赋值 。
- 导入方式
- 可以每次只导入一个包里面的特定模块, import sound.effects.echo , 这将会导入子模块:sound.effects.echo。 但使用时需要全名去访问(sound.effects.echo.echofilter)。
- 另一种导入子模块的方法是: from sound.effects import echo 这样可以冗长的前缀 。
- 之外,一种变化就是直接导入一个函数或者变量 。from sound.effects.echo import echofilter
- 注:import语法会首先把item当作一个包定义的名称,如果没找到,再试图按照一个模块去导入。如果还没找到,exc:ImportError 异常会被抛出 。
- 当使用使用 from sound.effects import *,由导入语句确定:如果包定义文件 __init__.py 存在一个叫做 __all__ 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。
三 、格式输入与输出
- str(): 函数返回一个用户易读的表达形式。
- repr(): 产生一个解释器易读的表达形式。
- 字符串对象的 rjust() 方法, 它可以将字符串靠右, 并在左边填充空格。
- 其他类似的有, ljust( ) 和 center( )它们仅仅返回新的字符串。
- zfill( ), 它会在数字的左边填充 0。
- str.format() 基本用法 print('{ }网址: "{ } !"'.format('Google', 'www.google.com')) 括号及其里面的字符 (称作格式化字段) 将会被 format() 中的参数替换。
- 括号中的数字用于指向传入对象在 format() 中的位置。
- 如果在 format() 中使用了关键字参数, 那么它们的值会指向使用该名字的参数。
- '!a' (使用 ascii()), '!s' (使用 str()) 和 '!r' (使用 repr()) 可以用于在格式化某个值之前对其进行转化 。
- 可选项 ' : ' 和格式标识符可以跟着字段名。例如,将 Pi 保留到小数点后三位 。
- 在 ':' 后传入一个整数, 可以保证该域至少有这么多的宽度。 print('{0:10} ==> {1:10d}'.format(name, number))
- 旧式字符串格式化
- % 操作符也可以实现字符串格式化。 它将左边的参数作为类似 sprintf() 式的格式化字符串, 而将右边的代入, 然后返回格式化后的字符串 。
四 、文 件 相 关
- ilename:filename 变量是一个包含了你要访问的文件名称的字符串值。
- mode:mode决定了打开文件的模式:只读,写入,追加等。这个参数是非强制的,默认文件访问模式为只读(r)。
- 文件对象通过open函数创建
- f.read() 读取一个文件的内容,调用 f.read(size), 这将读取一定数目的数据, 然后作为字符串或字节对象返回。size 是一个可选的数字类型的参数。 当 size 被忽略了或者为负, 那么该文件的所有内容都将被读取并且返回。
- f.readline( ) f.readline() 会从文件中读取单独的一行。换行符为 '\n'。f.readline() 如果返回一个空字符串, 说明已经已经读取到最后一行。
- f.readlines( ) f.readlines() 将返回该文件中包含的所有行。如果设置可选参数 sizehint, 则读取指定长度的字节, 并且将这些字节按行分割。
- f.write( ) f.write(string) 将 string 写入到文件中, 然后返回写入的字符数。
- f.tell( ) f.tell() 返回文件对象当前所处的位置, 它是从文件开头开始算起的字节数 。
- f.seek( ) 如果要改变文件当前的位置, 可以使用 f.seek(offset, from_what ) 函数。from_what 的值, 如果是 0 表示开头, 如果是 1 表示当前位置, 2 表示文件的结尾。例如:
- seek(x,0) : 从起始位置即文件首行首字符开始移动 x 个字符
- seek(x,1) : 表示从当前位置往后移动x个字符
- seek(-x,2):表示从文件的结尾往前移动x个字符
- 注: rom_what 值为默认为0,即文件开头 。
- f.close( ) 在文本文件中 (那些打开文件的模式下没有 b 的), 只会相对于文件起始位置进行定位 。当你处理完一个文件后, 调用 f.close() 来关闭文件并释放系统的资源,如果尝试再调用该文件,则会抛出异常。
五 、pickle 模块
六 、文件相关的(常用)方法
- 1 file.close() 关闭文件。关闭后文件不能再进行读写操作。
- 2 file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
- 3 file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。
- 4 file.isatty() 如果文件连接到一个终端设备返回 True,否则返回 False。
- 5 file.next() 返回文件下一行。
- 6 file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
- 7 file.readline([size]) 读取整行,包括 "\n" 字符。
- 8 file.readlines([sizeint]) 读取所有行并返回列表,若给定sizeint>0,返回总和大约为sizeint字节的行, 实际读取值可能比 sizeint 较大, 因为需要填充缓冲区。
- 9 file.seek(offset[, whence]) 设置文件当前位置
- 10 file.tell() 返回文件当前位置。
- 11 file.truncate([size]) 从文件的首行首字符开始截断,截断文件为 size 个字符,无 size 表示从当前位置截断;截断之后 V 后面的所有字符被删除,其中 Widnows 系统下的换行代表2个字符大小。
- 12 file.write(str) 将字符串写入文件,没有返回值。
- 13 file.writelines(sequence) 向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符。
七 、OS 文件/目录方法
- os.access(path, mode) 检验权限模式
- os.chdir(path) 改变当前工作目录
- os.chflags(path, flags) 设置路径的标记为数字标记。
- os.chmod(path, mode) 更改权限
- os.chown(path, uid, gid) 更改文件所有者
- os.chroot(path) 改变当前进程的根目录
- os.close(fd) 关闭文件描述符 fd
- os.closerange(fd_low, fd_high) 关闭所有文件描述符,从 fd_low (包含) 到 fd_high (不包含), 错误会忽略
- os.dup(fd) 复制文件描述符 fd
- os.dup2(fd, fd2) 将一个文件描述符 fd 复制到另一个 fd2
- os.fchdir(fd) 通过文件描述符改变当前工作目录
- os.fchmod(fd, mode) 改变一个文件的访问权限,该文件由参数fd指定,参数mode是Unix下的文件访问权限。
- os.fchown(fd, uid, gid) 修改一个文件的所有权,这个函数修改一个文件的用户ID和用户组ID,该文件由文件描述符fd指定。
- os.fdatasync(fd) 强制将文件写入磁盘,该文件由文件描述符fd指定,但是不强制更新文件的状态信息。
- os.fdopen(fd[, mode[, bufsize]]) 通过文件描述符 fd 创建一个文件对象,并返回这个文件对象
- os.fpathconf(fd, name) 返回一个打开的文件的系统配置信息。name为检索的系统配置的值,它也许是一个定义系统值的字符串,这些名字在很多标准中指定(POSIX.1, Unix 95, Unix 98, 和其它)。
- os.fstat(fd) 返回文件描述符fd的状态,像stat()。
- os.fstatvfs(fd) 返回包含文件描述符fd的文件的文件系统的信息,像 statvfs()
- os.fsync(fd) 强制将文件描述符为fd的文件写入硬盘。
- os.ftruncate(fd, length) 裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。
- os.getcwd() 返回当前工作目录
- os.getcwdu() 返回一个当前工作目录的Unicode对象
- os.isatty(fd) 如果文件描述符fd是打开的,同时与tty(-like)设备相连,则返回true, 否则False。
- os.lchflags(path, flags) 设置路径的标记为数字标记,类似 chflags(),但是没有软链接
- os.lchmod(path, mode) 修改连接文件权限
- os.lchown(path, uid, gid) 更改文件所有者,类似 chown,但是不追踪链接。
- os.link(src, dst) 创建硬链接,名为参数 dst,指向参数 src
- os.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表。
- os.lseek(fd, pos, how) 设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unix,Windows中有效
- os.lstat(path) 像stat(),但是没有软链接
- os.major(device) 从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。
- os.makedev(major, minor) 以major和minor设备号组成一个原始设备号
- os.makedirs(path[, mode]) 递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。
- os.minor(device) 从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。
- os.mkdir(path[, mode]) 以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。
- os.mkfifo(path[, mode]) 创建命名管道,mode 为数字,默认为 0666 (八进制)
- os.mknod(filename[, mode=0600, device])
- 一个名为filename文件系统节点(文件,设备特别文件或者命名pipe)。
- os.open(file, flags[, mode]) 打开一个文件,并且设置需要的打开选项,mode参数是可选的
- os.openpty() 打开一个新的伪终端对。返回 pty 和 tty的文件描述符。
- os.pathconf(path, name) 返回相关文件的系统配置信息。
- os.pipe() 创建一个管道. 返回一对文件描述符(r, w) 分别为读和写
- os.popen(command[, mode[, bufsize]]) 从一个 command 打开一个管道
- os.read(fd, n) 从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。
- os.readlink(path) 返回软链接所指向的文件
- os.remove(path) 删除路径为path的文件。如果path 是一个文件夹,将抛出OSError; 查看下面的rmdir()删除一个 directory。
- os.removedirs(path) 递归删除目录。
- os.rename(src, dst) 重命名文件或目录,从 src 到 dst
- os.renames(old, new) 递归地对目录进行更名,也可以对文件进行更名。
- os.rmdir(path) 删除path指定的空目录,如果目录非空,则抛出一个OSError异常。
- os.stat(path) 获取path指定的路径的信息,功能等同于C API中的stat()系统调用。
- os.stat_float_times([newvalue]) 决定stat_result是否以float对象显示时间戳
- os.statvfs(path) 获取指定路径的文件系统统计信息
- os.symlink(src, dst) 创建一个软链接
- os.tcgetpgrp(fd) 返回与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组
- os.tcsetpgrp(fd, pg) 设置与终端fd(一个由os.open()返回的打开的文件描述符)关联的进程组为pg。
- os.tempnam([dir[, prefix]]) 返回唯一的路径名用于创建临时文件。
- os.tmpfile() 返回一个打开的模式为(w+b)的文件对象 .这文件对象没有文件夹入口,没有文件描述符,将会自动删除。
- os.tmpnam() 为创建一个临时文件返回一个唯一的路径
- os.ttyname(fd) 返回一个字符串,它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联,则引发一个异常。
- os.unlink(path) 删除文件路径
- os.utime(path, times) 返回指定的path文件的访问和修改的时间。
- os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
- 在文件夹中的文件名通过在树中游走,向上或者向下。
- os.write(fd, str) 写入字符串到文件描述符 fd中. 返回实际写入的字符串长度
Python3 模块相关及输入输出模式相关推荐
- linux python3安装包_Linux下安装python3及相关包
Python3: sudo apt-get install python3 终端中输入python则进入python2,输入python3则进入python3 安装python2的相关包: sudo ...
- STM32:GPIO四种输入输出模式。
STM32 四种输入输出模式. STM32的四种输入方式: 1.上拉输入(GPIO_Mode_IPU) 上拉输入就是信号进入芯片后加了一个上拉电阻,再经过施密特触发器转换成0.1信号,读取此时的引脚电 ...
- python 菜鸟-Python3 模块
Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...
- 转:Andriod Phone模块相关
http://hi.baidu.com/anly%5Fjun/blog/index/0 Andriod Phone模块相关(总览) 2010-01-30 13:50 1.从java端发送at命令的处理 ...
- python3 模块大全_Python3 模块 | 菜鸟教程
Python3 模块 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了. 为此 Python 提供了一个办 ...
- python3 模块
python3 模块 time 模块: 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...
- python3模块文档_python3之模块
1.python3模块 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py.模块可以被别的程序引入,以使用该模块中的函数等功能.这也是使用 python 标准库的方法. 模块让你能够有逻辑地 ...
- Python3 入门教程||Python3 数据结构||Python3 模块
Python3 数据结构 本章节我们主要结合前面所学的知识点来介绍 Python 数据结构. 列表 Python 中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而 ...
- Python3入门教程||Python3 数据结构||Python3 模块
Python3 数据结构 本章节我们主要结合前面所学的知识点来介绍 Python 数据结构. 列表 Python 中列表是可变的,这是它区别于字符串和元组的最重要的特点,一句话概括即:列表可以修改,而 ...
最新文章
- python 生成随机图片
- 【原创】Struts2.5.12版本中使用通配符*
- 【学生信息管理系统】——问题篇
- 【quickhybrid】API的分类:短期API、长期API
- Spring Security OAuth2整合JWT
- 游戏开发经验分享:我所理解的打击感
- vbyone接口引脚定义_USB3.1 Type-C 高速接口设计指南
- [转载]----Hadoop2.0命令手册
- 圆孔夫琅禾费衍射MATLAB程序,模拟夫琅禾费衍射的matlab源代码
- 大学cad课要用计算机么,cad2010大学课程
- 【随笔】记录一次简易的液位报警器的拆机修理
- 计算机名有重名,导致的问题
- 前淘宝技术专家谈12306:这个网站很神奇
- 【小技巧】酒店Wifi不弹出登陆方案(Mac)
- flutter bloc记录
- 优秀的相关网站留存【实时更新】
- python视频行人检测_python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
- 如何用Python编程实现算术割圆术?
- F - 心灵之霞(B - 风之守护plus)
- 华为发布全栈数据中心、新一代智慧园区两大方案,加速行业数字化与绿色发展双转型
热门文章
- (转)unity web 缓存解决方案
- C# Replace函数与JS replace函数
- 《吴恩达深度学习》第一课第四周任意层的神经网络实现及BUG处理
- input输入框汇总
- 用EnumProcesses()枚举进程
- freebsd查询php5的版本,FreeBSD下查看各软件版本命令
- java jar包 配置文件_java 导入jar包中配置文件
- dijkstra算法matlab程序_Dijkstra算法例子
- webstorm两个文件比对_webstorm怎么更改文件名称?或者是重命名
- python 简历处理_按照这个方式学Python,老板把垃圾桶里的简历舔回来:月薪50000...