Python学习_06_文件、IO
文件对象
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的更多相关文章
- python学习9—文件基本操作与高级操作
python学习9—文件基本操作与高级操作 1. 文件基本操作 打开文件,获得文件句柄:f = open('filename',encoding='utf-8'),open会查询操作系统的编码方式,并 ...
- Python学习--13 文件I/O
Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系 ...
- python学习总结---文件操作
# 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...
- [Python学习笔记]文件的读取写入
文件与文件路径 路径合成 os.path.join() 在Windows上,路径中以倒斜杠作为文件夹之间的分隔符,Linux或OS X中则是正斜杠.如果想要程序正确运行于所有操作系统上,就必须要处理这 ...
- Linux学习记录--文件IO操作相关系统编程
文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...
- python学习笔记:文件操作和集合(转)
转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...
- python学习——大文件分割与合并
在平常的生活中,我们会遇到下面这样的情况: 你下载了一个比较大型的游戏(假设有10G),现在想跟你的同学一起玩,你需要把这个游戏拷贝给他. 然后现在有一个问题是文件太大(我们不考虑你有移动硬盘什么的情 ...
- python学习之文件读写,序列化(json,pickle,shelve)
python基础 文件读写 凡是读写文件,所有格式类型都是字符串形式传输 只读模式(默认) r f=open('a.txt','r')#文件不存在会报错 print(f.read())#获取到文件所 ...
- python学习8 文件的操作
本文拷贝了on testing 的<python之文件操作:文件的读写>,只做学习之用 python的文件读写通过 一.用open函数 二.对文件读写操作 三.读取文件位置定位 1. op ...
随机推荐
- 【MySQL】20个经典面试题,全部答对月薪10k+
Part2:经典题目 1.MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联: 2.MySQL中myisam与innodb的区别,至少5点 (1).问5点不同: (2).innodb引 ...
- gem install报错
[root@app-test ruby-2.2.3]# gem install capistrano -v 2.15 ERROR: While executing gem ... (Gem::Rem ...
- Codeforces Gym 101521A Shuttle Bus
题意:给定一个2*N的方格,从左上角开始走,有些格子不能走,问能否一次遍历所有能走的方格 在Gym上看到一场香港的比赛,很好奇就去看了一下,发现第一题很有趣,并且很水,似乎讨论一下奇偶性就行了,然后. ...
- Jarvis OJ- [XMAN]level2/3_x64-Writeup——64位简单栈溢出
两道64位栈溢出,思路和之前的32位溢出基本一致,所以放在一起 在这两道中体现的32位和64位的主要区别在于函数参数传递的方式 在32位程序运行中,函数参数直接压入栈中 调用函数时栈的结构为:调用函数 ...
- Java进阶(七)正确理解Thread Local的原理与适用场景
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...
- 并发与并行的区别 The differences between Concurrency and Parallel
逻辑控制流 在程序加载到内存并执行的时候(进程),操作系统会通过让它和其他进程分时段占用CPU(CPU slices)让它产生自己独占CPU的假象(同时通过虚拟内存让它产生独占内存的假象).在CPU在 ...
- 在centos7中手动编译greenplum
一.编译环境 Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 2014 ...
- myeclipse配置SVN插件
方法一:link安装 安装subclipse, MyEclipse SVN插件 1.从官网下载最新的site-1.x.x.zip文件,网址是:folderID=2240" target= ...
- vue的组件和生命周期
Vue里组件的通信 通信:传参.控制.数据共享(A操控B做一个事件) 模式:父子组件间.非父子组件 父组件可以将一条数据传递给子组件,这条数据可以是动态的,父组件的数据更改的时候,子组件接收的也会变化 ...
- IEEE Trans 2007 Signal Recovery From Random Measurements via OMP
看了一篇IEEE Trans上的关于CS图像重构的OMP算法的文章,大部分..看不懂,之前在看博客的时候对流程中的一些标号看不太懂,看完论文之后对流程有了一定的了解,所以在这里解释一下流程,其余的如果 ...