01 2019 档案
摘要:附: pickle 有大量的配置选项和一些棘手的问题。对于最常见的使用场景,你不需要去担心这个,是如果你要在一个重要的程序中使用pickle 去做序列化的话,最好去查阅一下官方文档。 https://docs.python.org/3/library/pickle.html 定义 通过将对象序列化可
阅读全文
摘要:1. Groovy language: http://docs.groovy-lang.org/latest/html/documentation/index.html http://docs.groovy-lang.org/latest/html/documentation/index.html#
阅读全文
摘要:Java中transient关键字的作用,简单地说,就是让某些被修饰的成员属性变量不被序列化,这一看好像很好理解,就是不被序列化,那么什么情况下,一个对象的某些字段不需要被序列化呢?如果有如下情况,可以考虑使用关键字transient修饰: 1、类中的字段值可以根据其它字段推导出来,如一个长方形类有
阅读全文
摘要:老是听说序列化反序列化,就是不知道到底什么是序列化,什么是反序列化?今天就在网上搜索学习一下,这一搜不要紧,发现自己曾经用过,竟然不知道那就是JDK类库中序列化和反序列化的API。 什么是序列化? --1--java序列化是指把java对象转换为字节序列的过程,而java反序列化是指把字节序列恢复为
阅读全文
摘要:需要在程序执行时创建一个临时文件或目录,并希望使用完之后可以自动销毁掉。 tempfile 模块中有很多的函数可以完成这任务。为了创建一个匿名的临时文件,可以使用tempfile.TemporaryFile 还可以像这样使用临时文件: TemporaryFile() 的第一个参数是文件模式,通常来讲
阅读全文
摘要:今天使用seek()时报错了, 看下图 然后就百度了一下,找到了解决方法 这篇博客https://www.cnblogs.com/xisheng/p/7636736.html 帮忙解决了问题, 照理说,按照seek()方法的格式file.seek(offset,whence),后面的1代表从当前位置
阅读全文
摘要:有一个对应于操作系统上一个已打开的I/O 通道(比如文件、管道、套接字等)的整型文件描述符,你想将它包装成一个更高层的Python 文件对象。 一个文件描述符和一个打开的普通文件是不一样的。文件描述符仅仅是一个由操作系统指定的整数,用来指代某个系统的I/O 通道。如果你碰巧有这么一个文件描述符,你可
阅读全文
摘要:先上一张图 文件描述符是内核为了高效管理已经被打开的文件所创建的索引, 非负整数 用于指代被打开的文件 所有执行i/o操作的系统调用都是通过文件描述符完成的 进程通过文件描述符来访问文件。 在程序刚启动的时候默认有3个文件描述符:0(标准输入),1(标准输出),2(标准错误),系统默认提供了 0~2
阅读全文
摘要:想在文本模式打开的文件中写入原始的字节数据 将字节数据直接写入文件的缓冲区即可 类似的,能够通过读取文本文件的buffer 属性来读取二进制数据 I/O 系统以层级结构的形式构建而成。文本文件是通过在一个拥有缓冲的二进制模式文件上增加一个Unicode 编码/解码层来创建。buffer 属性指向对应
阅读全文
摘要:I/O系统有一系列的层次构建而成 下面是操作一个文本文件的例子来查看这种层次 io.TextIOWrapper 是一个编码和解码Unicode 的文本处理层,io.BufferedWriter 是一个处理二进制数据的带缓冲的I/O 层,io.FileIO 是一个表示操作系统底层文件描述符的原始文件,
阅读全文
摘要:glob模块用来查找文件目录和文件,可以和常用的find功能进行类比。glob支持*?[]这三种通配符。返回的数据类型是list。常见的两个方法有glob.glob()和glob.iglob(),iglob与glob类似,只是这里返回值为迭代器,对于大量文件时更为省内存。 *代表0个或多个字符 ?代
阅读全文
摘要:使用os.listdir() 函数来获取某个目录中的文件列表 结果会返回目录中所有文件列表,包括所有文件,子目录,符号链接等等。如果你需要通过某种方式过滤数据,可以考虑结合os.path 库中的一些函数来使用列表推导 字符串的startswith() 和endswith() 方法对于过滤一个目录的内
阅读全文
摘要:测试一个文件或目录是否存在 测试这个文件时什么类型的 获取文件大小或者是修改日期 使用os.path 来进行文件测试是很简单的。在写这些脚本时,可能唯一需要注意的就是你需要考虑文件权限的问题,特别是在获取元数据时候
阅读全文
摘要:需要使用路径名来获取文件名,目录名,绝对路径等等。 使用os.path 模块中的函数来操作路径名。下面是一个交互式例子来演示一些关键的特性: 对于任何的文件名的操作,你都应该使用os.path 模块,而不是使用标准字符串操作来构造自己的代码。特别是为了可移植性考虑的时候更应如此,因为os.path
阅读全文
摘要:# Split the file extension 可以把扩展名获取出来
阅读全文
摘要:# Expand the user's home directory
阅读全文
摘要:返回文件所在的路径 如果path变量直接是文件名则返回空
阅读全文
摘要:返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素。
阅读全文
摘要:使用内存映射的原因 为了随机访问文件的内容,使用mmap将文件映射到内存中是一个高效和优雅的方法。例如,无需打开一个文件并执行大量的seek(),read(),write()调用,只需要简单的映射文件并使用切片操作访问数据即可。 内存映射一个文件并不会导致这个文件被读取到内存中。也就是说,文件并没有
阅读全文
摘要:想直接读取二进制数据到一个可变缓冲区中,而不需要做任何的中间复制操作。或者你想原地修改数据并将它写回到一个文件中去。 为了读取数据到一个可变数组中,使用文件对象的readinto() 方法。比如 下面是一个演示这个函数使用方法的例子: 文件对象的readinto() 方法能被用来为预先分配内存的数组
阅读全文
摘要:1.参考文档 class bytearray([source[, encoding[, errors]]]) Return a new array of bytes. The bytearray class is a mutable sequence of integers in the range
阅读全文
摘要:gzip 和bz2 模块可以很容易的处理这些文件。两个模块都为open() 函数提供了另外的实现来解决这个问题。比如,为了以文本形式读取压缩文件,可以这样做: 类似的,为了写入压缩数据,可以这样做: 如上,所有的I/O 操作都使用文本模式并执行Unicode 的编码/解码。类似的,如果你想操作二进制
阅读全文