Python--file 的读写以及常用方法
来源:互联网 发布:高速微型数据连接器 编辑:程序博客网 时间:2024/06/10 17:32
今天开始学习file 的基本操作。
在Python中,不可避免的需要对实际数据文件进行读写等各种操作。
Python 提供了函数和方法对文件基本的操作。可以使用file对象做大部分的文件操作。
对文件进行操作需要按照如下步骤:
1. open 文件,2. 文件操作(读或写) 3. 关闭文件 这是基本要求。
1、file 打开文件
open()函数
作用:打开文件,创建一个file 对象。
语法:
file object = open(file_name [, access_mode][, buffering])
其中: file_name : 是一个包含了需要访问的文件名的字符串值。
access_mode : 决定了打开文件的模式: 只读、写入、追加 ,默认文件访问模式是只读(r)
buffering : if buffering ==0 ,则不会寄存,bufferiing =1 ,文件会寄存行。if buffering>1 的整数,表明了寄存区的缓冲大小。if buffering <0 ,寄存区的缓冲大小为系统默认。
下面给出不同模式打开文件的列表:
import codecsf=codecs.open('1.txt') //打开文件,默认为只读print (f.read())f.close()
11111112222222333333344444445555555
f=codecs.open('1.txt','rb')
file=codecs.open('4.txt','wb')
按照各自不同模式进行打开文件。
file 对象的属性:
当文件被打开后,就有了一个file 对象,可以获取file的各种相关信息。
先给出file的属性列表:
例如:
import codecsf=codecs.open('1.txt','rb')print (f.read())print (f.mode)print (f.name)print (f.softspace)print (f.closed)f.close()print (f.closed)
11111112222222233333333444444444rb1.txt0FalseTrueTrue
在上面用到了close() 方法
close () 关闭文件。
当一个文件对象的引用被重新制定给另外一个文件时,Python 会关闭之前的文件。
2. file读文件
1.read() 作用: 从一个打开的文件中读取一个字符串。
方法: file.read(count);
count: 是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入,如果没有传入count,它会尝试尽可能多地读取更多的内容,很可能是直到文件的末尾。
import codecsf=codecs.open('1.txt','rb')print (f.read())f.close()
11111112222222233333333444444444
2. readlines()
作用:用于读取所以行(直到结束符EOF),并返回列表。该列表可由for 语句处理。
读取文件内容,文件内容的每一行都是一个字符串,最后返回一个list
语法:file.readlines()
返回值: 列表,包含所以行
例如:
1.txt 的内容如下:
11111112222222333333344444444555555555666666666
import codecsf=codecs.open('1.txt','rb')print (f.readlines())f.close()结果:
['1111111\n', '2222222\n', '3333333\n', '44444444\n', '555555555\n', '666666666\n']3. readline()
作用:用于从文件中读取一行,返回一个字符串。包括“\n”.如果指定了一个非负数的参数,则返回指定大小的字节数,包括 "\n" 字符
语法:file.readline()
返回值: 返回从字符串中读取的字节
import codecsf=codecs.open('1.txt','rb')print (f.readline())f.close()
1111111
import codecsf=codecs.open('1.txt','rb')print (f.readline())print (f.readline())print (f.readline())print (f.readline())print (f.readline())f.close()
11111112222222333333344444444555555555从上面可以看出: readlines 与readline 的区别,readlines 主要是读取文件内容的所有内容,且,每一行都是一个字符串,最后返回一个list。 而readline是读取文件内容的某一行,返回一个字符串。
3、file 写文件
write()方法可以将任何字符串写入一个打开的文件。该方法不会再字符串的结尾添加换行符(“\n”)
语法: file.write(string)
string : 是要写入到已经打开文件的内容
import codecsf=codecs.open('1.txt','ab')f.write('hello python1\n')f.write('hello %s\n' % 'yansss')f.write('hello {0}\n'.format('ssssss'))f.write('hello python3\n')f.close()另外,1.txt 内容如下:
111111111222222223333333344444444455555555
f=open('1.txt','wb')f.write('wwww.run\nvery good\n\hello python\n')f.close()在此查看1.txt:
wwww.runvery good\hello python
2.writelines()
作用: 用于向文件中写入一序列的字符串。这一序列字符串可以是迭代对象产生的,如字符串列表。换行需制定换行符\n
语法:file.writlines(str)
str--要写入的字符串序列
返回值: 无
import codecsf=codecs.open('5.txt','wb')f.writelines(['abdc\n','dddd\n','ddhdh\n'])f.close()结果5.txt 内容如下:
abdcddddddhdh
以上可以看出,writelines 必须传入一个序列,即列表,write 必须传入的是字符串。
4. file 常用方法
1.flush()用来刷新缓冲区,即将缓冲区的内容立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区
一般,文件关闭后自动刷新缓冲区。但有时你需要在关闭前刷新它,这时就可以使用 flush() 方法
语法:file.flush()
返回值:无
import codecsf=codecs.open('5.txt','rb')print (f.name)f.flush()f.close()
5.txt2.tell ()
作用: 返回文件的当前位置,即文件指正当前位置
语法: file.tell(offset[, where])
返回值:文件位置
文件内容:
abdcddddddhdh
import codecsf=codecs.open('5.txt','rb')print (f.name)print (f.readline())print(f.tell())f.close()
结果:
5.txtabdc53.next()
作用:读取文件的下一行内容,返回一个字符串。
语法: file.next()
返回值: 返回文件的下一行
1.txt内容如下:
11111112222222333333344444444555555555666666666
import codecsf=codecs.open('1.txt','rb')print (f.name)print (f.readline())print (f.next())f.close()结果:
1.txt11111112222222
- Python--file 的读写以及常用方法
- File的读写方法
- File类的构造方法以及常用方法
- File常用的方法
- Python:file/file-like对象方法详解【单个文件读写】
- Python 中File I/O 和一些常用的方法
- python一些常用方法以及模块的使用
- File类的常用方法
- File类的常用方法
- File类的常用方法
- File类的常用方法
- File对象的常用方法
- file类的常用方法
- File类的常用方法
- File类的常用方法
- File类的常用方法
- file类的常用方法
- File的几个常用方法
- uva10000
- Statement和PreparedStatement之间的区别
- 洛谷10月月赛R2·浴谷八连测R4
- 面向接口编程
- Linux常用命令之ls
- Python--file 的读写以及常用方法
- Could not create connection to database server
- 限迁解除难 汽车金融求发展
- Lua源码揭秘(一)概述
- 搜狗输入法新技能令人兴奋,但 Google 和 Apple 也是这么想的
- HDU 4586 Information Disturbing 二分+树形dp
- 使用vue-resource读取本地json文件404
- [docker]单台物理机-多台物理机集中-监控[ansible-cmdb/netdata/Serverstatus]
- 查找和排序-——旋转数组的最小数字