文件对象

python中的文件操作和c语言比较类似,包括一些缓冲、偏移量的方式。

文件对象可以通过open()、file()两个内建方法创建,两个方法并没有什么不同,使用方法和c语言中的fopen()类似:

file_object = open(file_name, access_mode=‘r’, buffering=-1)

其中access_mode表示打开方式,r表示只读,w表示只写,r+,w+表示读写,a表示追加等;buffering表示缓冲方式,负值表示默认缓冲方式,0表示不缓冲,1表示行缓冲,大于1的值表示缓冲区的大小,一般情况下使用默认缓冲即可。

在perl中经常会用到管道的方式,通过open IN,”gunzip -cd $gzfile|” or die $!; 的方式轻松实现从压缩文件中读取内容,python中也可以通过os.popen()实现管道操作,注意的是,最后一层管道的|需要省略,因为popen()默认就是从管道中读取。

文件输入:

1. read()方法,指定读取一定个数的字节到字符串中,如果不指定字节或者为负值,则读取所有的内容;

2. readline()方法,读取一行内容,如果指定的参数size小于一行长度,则只返回 size个字节到字符串中;

3. readlines()方法,会读取所有的行并且返回一个字符串列表,可选参数代表返回的最大字节数,但是仍然需要凑齐缓冲区大小;

使用迭代器,并且配合for循环和readline()方法,是比较好的输入方式:

for line in file_object.readline():
    print line 

文件输出:

1. write()方法,像文件写入字符串

2. writelines()方法,将一个字符串列表写入到文件,或者是返回字符串的可迭代对象

文件偏移量:

1. tell()方法可以返回当前在文件中的位置

2. seek(offset, whence=0)方法,移动文件中的指针,whence=0表示从文件开始位置移动offset个偏移量,1表示从当前位置移动offset个偏移量,2表示从文件末尾移动offset个偏移量

内建方法:

file.close():关闭文件句柄,并且将缓冲区的内容写入到文件中

file.fileno():返回文件描述符;

file.flush():立即刷新文件缓冲区

内建属性:

file.name:文件名,file.mode:文件打开方式,file.encoding:文件编码方式,file.closed:文件是否被关闭等

标准输入输出错误流:

sys模块中可以通过sys.stdin,sys.stdout,sys.syderr访问标准输入输出错误流,内建方法raw_input()通常从sys.stdin接收输入

sys模块还可以通过sys.argv属性来访问环境参数,argv[0]为脚本本身

文件系统

在os模块中包含操作系统功能的主要接口,包括文件的相关操作:

os.getcwd():返回当前工作目录,os.listdir():列出指定目录下的相关文件(包括子目录),chdir():改变当前目录,symlink():创建符号链接,remove():删除文件,rename():重命名文件

os.path 模块中的路径相关操作:

os.path.basename:返回文件名,dirname():返回目录名,split():返回(dirname(),basename())元组,get*time():返回各种事件,getsize()返回文件大小,exists():指定路径是否存在,isdir():是否存在指定路径且为一个目录,isfile():指定目录是否存在且为一个文件等等

其他相关模块

bz2、csv、gzip/zlib、tarfile、zipfile等

Python学习_06_文件、IO的更多相关文章

  1. python学习9—文件基本操作与高级操作

    python学习9—文件基本操作与高级操作 1. 文件基本操作 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并 ...

  2. Python学习--13 文件I/O

    Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系 ...

  3. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  4. [Python学习笔记]文件的读取写入

    文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...

  5. Linux学习记录--文件IO操作相关系统编程

    文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...

  6. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  7. python学习——大文件分割与合并

    在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...

  8. python学习之文件读写,序列化(json,pickle,shelve)

    python基础 文件读写 凡是读写文件,所有格式类型都是字符串形式传输 只读模式(默认) r  f=open('a.txt','r')#文件不存在会报错 print(f.read())#获取到文件所 ...

  9. python学习8 文件的操作

    本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...

随机推荐

  1. 【垃圾回收】Java内存回收实践经验 防止内存报警

    jdk6和7服务器端(-server) 默认的新生代的垃圾回收器为:PS Scavenge,老年代默认的垃圾回收器为:PS MarkSweep 目前项目使用了jdk7,tomcat7,经常出现内存堆使 ...

  2. Java 代码学习之数组的初始化

    我们都很熟悉Java中的数组,它具有查询快,增删慢的特点.但是通常我们自认为很了解它的用法,却容易忽略一些小细节.今天通过一段代码来简单了解数组初始化中的一些我们容易忽略的地方. package da ...

  3. ASP.NET没有魔法——ASP.NET MVC使用Oauth2.0实现身份验证

    随着软件的不断发展,出现了更多的身份验证使用场景,除了典型的服务器与客户端之间的身份验证外还有,如服务与服务之间的(如微服务架构).服务器与多种客户端的(如PC.移动.Web等),甚至还有需要以服务的 ...

  4. always中的敏感变量

    always语句下如果有判断语句if,那么if语句中的条件必须有always中的敏感变量. 否则错误提示为:Error (10200): Verilog HDL Conditional Stateme ...

  5. 機器學習基石(Machine Learning Foundations) 机器学习基石 课后习题链接汇总

    大家好,我是Mac Jiang,非常高兴您能在百忙之中阅读我的博客!这个专题我主要讲的是Coursera-台湾大学-機器學習基石(Machine Learning Foundations)的课后习题解 ...

  6. public,private,protected,以及不写时的差别

    作用域public,private.protected.以及不写时的差别 这四个作用域的可见范围例如以下表所看到的. 说明:假设在修饰的元素上面没有写不论什么訪问修饰符,则表示friendly.不使用 ...

  7. 【日常学习】【线性DP】codevs1044 拦截导弹题解

    题目描写叙述 Description 某国为了防御敌国的导弹突击,发展出一种导弹拦截系统.可是这样的导弹拦截系统有一个缺陷:尽管它的第一发炮弹可以到达随意的高度,可是以后每一发炮弹都不能高于前一发的高 ...

  8. 自学Zabbix3.5.5-监控项item-User parameters(自定义key)

    为什么要自定义KEY,即User parameters功能 有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法.我们可以在客户端配置文件zabb ...

  9. WCF实现长连接

    由于WCF的机制,连接池会在连接建立一定时间后超时,即使设置了超时时间非常长,也可能被服务端系统主动回收.之前做项目时碰到了这个问题,所以项目上考虑采用长连接,自动管理连接池,当连接超时后,自动重建, ...

  10. html5中将图片的绝对路径转换成文件对象

    html5中将图片的绝对路径转换成文件对象 将图片的绝对路径转换成base64编码,请看这篇文章 我们先来理解基本知识点: 1. 理解HTML5中的FileList对象与file对象. 在HTML5中 ...