Python编程中的文件操作攻略


Posted in Python onOctober 16, 2015

open函数
你必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的辅助方法才可以调用它进行读写。
语法:

file object = open(file_name [, access_mode][, buffering])

各个参数的细节如下:
file_name:file_name变量是一个包含了你要访问的文件名称的字符串值。
access_mode:access_mode决定了打开文件的模式:只读,写入,追加等。所有可取值见如下的完全列表。这个参数是非强制的,默认文件访问模式为只读(r)。
buffering:如果buffering的值被设为0,就不会有寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认。
不同模式打开文件的完全列表:
Python编程中的文件操作攻略
File对象的属性
一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
以下是和file对象相关的所有属性的列表:
Python编程中的文件操作攻略
如下实例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

以上实例输出结果:

Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0

Close()方法
File对象的close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。
当一个文件对象的引用被重新指定给另一个文件时,Python会关闭之前的文件。用close()方法关闭文件是一个很好的习惯。
语法:

fileObject.close();

例子:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
 
# 关闭打开的文件
fo.close()

以上实例输出结果:

Name of the file: foo.txt

读写文件:
file对象提供了一系列方法,能让我们的文件访问更轻松。来看看如何使用read()和write()方法来读取和写入文件。
Write()方法
Write()方法可将任何字符串写入一个打开的文件。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
Write()方法不在字符串的结尾不添加换行符('\n'):
语法:

fileObject.write(string);

在这里,被传递的参数是要写入到已打开文件的内容。

例子:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("/tmp/foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n");
 
# 关闭打开的文件
fo.close()

上述方法会创建foo.txt文件,并将收到的内容写入该文件,并最终关闭文件。如果你打开这个文件,将看到以下内容:

Python is a great language.
Yeah its great!!

read()方法
read()方法从一个打开的文件中读取一个字符串。需要重点注意的是,Python字符串可以是二进制数据,而不是仅仅是文字。
语法:

fileObject.read([count]);

在这里,被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。
例子:
就用我们上面创建的文件foo.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("/tmp/foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# 关闭打开的文件
fo.close()

以上实例输出结果:

Read String is : Python is

文件位置:
Tell()方法告诉你文件内的当前位置;换句话说,下一次的读写会发生在文件开头这么多字节之后:
seek(offset [,from])方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。如果设为1,则使用当前的位置作为参考位置。如果它被设为2,那么该文件的末尾将作为参考位置。
例子:
就用我们上面创建的文件foo.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 打开一个文件
fo = open("/tmp/foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
 
# 查找当前位置
position = fo.tell();
print "Current file position : ", position
 
# 把指针再次重新定位到文件开头
position = fo.seek(0, 0);
str = fo.read(10);
print "Again read String is : ", str
# 关闭打开的文件
fo.close()

以上实例输出结果:

Read String is : Python is
Current file position : 10
Again read String is : Python is


重命名和删除文件

Python的os模块提供了帮你执行文件处理操作的方法,比如重命名和删除文件。
要使用这个模块,你必须先导入它,然后可以调用相关的各种功能。
rename()方法:
rename()方法需要两个参数,当前的文件名和新文件名。
语法:

os.rename(current_file_name, new_file_name)

例子:
下例将重命名一个已经存在的文件test1.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 重命名文件test1.txt到test2.txt。
os.rename( "test1.txt", "test2.txt" )

remove()方法
你可以用remove()方法删除文件,需要提供要删除的文件名作为参数。
语法:

os.remove(file_name)

例子:
下例将删除一个已经存在的文件test2.txt。

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import os
 
# 删除一个已经存在的文件test2.txt
os.remove("text2.txt")
Python 相关文章推荐
朴素贝叶斯算法的python实现方法
Nov 18 Python
Python多线程编程(八):使用Event实现线程间通信
Apr 05 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
详解Django框架中的视图级缓存
Jul 23 Python
Python爬虫实现百度图片自动下载
Feb 04 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
微信公众号token验证失败解决方案
Jul 22 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
Python实现Excel自动分组合并单元格
Feb 22 Python
使用pandas模块实现数据的标准化操作
May 14 Python
python APScheduler执行定时任务介绍
Apr 19 Python
详解Python编程中包的概念与管理
Oct 16 #Python
解读Python编程中的命名空间与作用域
Oct 16 #Python
Python中的模块导入和读取键盘输入的方法
Oct 16 #Python
Python中基本的日期时间处理的学习教程
Oct 16 #Python
简单介绍使用Python解析并修改XML文档的方法
Oct 15 #Python
Python中将字典转换为XML以及相关的命名空间解析
Oct 15 #Python
详细解读Python中解析XML数据的方法
Oct 15 #Python
You might like
我的论坛源代码(三)
2006/10/09 PHP
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
解决中英文字符串长度问题函数
2007/01/16 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
javascript最常用与实用的创建类的代码
2010/08/12 Javascript
javascript getElementsByTagName
2011/01/31 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
JavaScript设置名字输入不合法的实现方法
2017/05/23 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
利用jQuery异步上传文件的插件用法详解
2017/07/19 jQuery
微信小程序button组件使用详解
2018/01/31 Javascript
通过一次报错详细谈谈Point事件
2018/05/17 Javascript
Vue实现按钮旋转和移动位置的实例代码
2018/08/09 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
django框架模板语言使用方法详解
2019/07/18 Python
python列表推导式入门学习解析
2019/12/02 Python
Python要如何实现列表排序的几种方法
2020/02/21 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
印度最大的网上花店:Ferns N Petals(鲜花、礼品和蛋糕)
2017/10/16 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
医学院学生求职简历的自我评价
2013/10/24 职场文书
羊脂球读书笔记
2015/06/30 职场文书
python基础之文件处理知识总结
2021/05/23 Python
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
python实现层次聚类的方法
2021/11/01 Python