python学习8 文件的操作

本文拷贝了on testing 的《python之文件操作:文件的读写》,只做学习之用

python的文件读写通过

一、用open函数

二、对文件读写操作

三、读取文件位置定位

1. open函数open(file_name[,access_mode][,buffering])

(1)参数说明

open(file_name[,access_mode][,buffering])      打开文件,获得文件的句柄

file_name:包含文件路径的字符串,可以是绝对路径也可以是相对路径,尽量使用绝对路径

access_mode:打开文件的方式:r--只读(默认)   w--写之前清空  a--在原来的内容后写,都是针对字符串

buffering:先写到缓存中,一般省略

(2) 返回值

该语句表示返回的是一个指向文件的指针,文件句柄。当以只读模式打开一个不存在文件时则会报错,

当以写或者追加模式打开一个不存在的文件时,则创建该文件,若文件路径中有目录不存在,则报错

(3)实例

f = open(‘d:/i_love_xu.txt‘,w)

2.mode文件操作模式

r,w,a

r+可读可写

w+:打开一个文件用于读写。如果该文件已经存在则将其覆盖。如果该文件不存在,创建新文件

a+:打开一个文件用于读写,如果该文件已经存在,则文件的指针将会放于末尾。文件以追加的模式加在后面,不存在,则创建新文件

rb,wb,ab则用于读取非字符串类型的文件,用二进制形式进行

3.open语句可以对文件进行的其他操作

(1) fp.closed()----判读文件是否关闭,返回True则为关闭

(2)fp.mode----输出读写模式,返回打开文件的访问模式

(3) fp.name --- 返回文件名称

(4)fp.close()----清空内存

(5)----next()   用来读写多个文件的,把文件名放在一个文件中

# for i in fp:

# print i

把一个file用for...in file这样的循环遍历语句时,就是调用next()函数来实现。

文件句柄是一个迭代器???

fp=open(fileName,‘r‘)

print fp.next()

print fp.next()

print fp.fileno() 判断当前操作的文件句柄是哪一个number

fp.close()

二、对文件作读写操作

1、常规的读写操作

(1)read([size])

size:读取的长度,以byte为单位。如果不指定参数,表示一次性读取全部内容,以字符串形式返回,并且每一行结尾会有一个"\n"符号。

(2)、readline([size])

调一次读取一行,如果给定了size,有可能返回的只是一行的一部分,以字符串的形式返回,并且结尾会有一个换行符"\n"。读完一行,文件操作标记移动到下一行的开头。

返回的是字符串

(3)、readlines([size])

(3.1)参数

size:指定很小的数字,会不生效,python 默认8k缓存区大小,需要大于8k生效

读取文件的全部内容,这个函数的内部是通过循环调用readline()来实现的

(3.2)返回值

返回的是列表格式,每一行是列表的一个元素,并且结尾会有一个换行符"\n"

(4)、writelines(seq)

seq:把seq(序列)的内容全部写到文件中(多行一次性写入)。也不会自动加入换行符。

注意:序列中的内容也必须是字符串类型的数据,才能成功写入文件。

(5)、write(str)

把str写到文件中,默认是不加换行符的,所以如果想换行的话,得手动加入换行符‘\n‘。

2、使用linecache模块读取文件

import linecache

允许从任何文件里得到任何的行,并且使用缓存进行优化,常见的情况是从单个文件读取多行。

(1)linecache.getlines(filename,lineno)

从名为 filename 的文件中得到第 lineno 行。

这个函数从不会抛出一个异常–产生错误时它将返回”(换行符将包含在找到的行里)。

如果文件没有找到,这个函数将会在 sys.path 搜索。

(2)linecache.getlines(filename) 返回列表

从名为 filename 的文件中得到全部内容,输出为列表格式,以文件每行为列表中的一个元素,并以 linenum-1 为元素在列表中的位置存储

(3)linecache.clearcache()

清除缓存,如果你不再需要先前从 getline() 中得到的行

(4)linecache.checkcache([filename])

检查缓存的有效性。如果在缓存中的文件在硬盘上发生了变化,并且你需要更新版本,使用这个函数。

如果省略 filename,将检查缓存里的所有条目。

(5)linecache.updatecache(filename)

更新文件名为 filename 的缓存。如果 filename 文件更新了,使用这个函数可以更新

linecache.getlines(filename)返回的列表。

另:读取文件之后你不需要使用文件的缓存时需要在最后清理一下缓存,使linecache.clearcache()清理缓存,释放缓存。

这个模块是使用内存来缓存你的文件内容,所以需要耗费内存,打开文件的大小和打开速度和你的内存大小有关系。

打印奇数行的文件:

fp=‘e:\\tmp\\05.txt‘

list1=linecache.getlines(fp)

for i in list1[::2]:

print i

三、读取文件的位置定位

1、tell()

返回当前操作文件读取到的位置

一个中文:3个字节

Windows下‘\r\n’(换行符)占两个字节,Linux下\n mac下\r.

2、seek(offset[,from]) 移动游标到想去的位置

from:,默认是0,2:从末尾开始计算偏移;1:从当前位置作为标准位置

offset:移动的总距离,可以是正数,可以为负数

三、读取文件的位置定位

1、tell()

返回当前操作文件读取到的位置

一个中文:3个字节

Windows下‘\r\n’(换行符)占两个字节,Linux下\n mac下\r.

2、seek(offset[,from]) 移动游标到想去的位置

from:,默认是0,2:从末尾开始计算偏移;1:从当前位置作为标准位置

offset:移动的总距离,可以是正数,可以为负数

原文地址:https://www.cnblogs.com/benbenxiaofeifei/p/9352227.html

时间: 2024-10-10 08:40:17

python学习8 文件的操作的相关文章

python中关于文件的操作

今天让我们来一起学习一下python中关于文件的操作吧: 先看看以下如果打开文件: #open()打开文件的方法:r参数只能以读的方式打开文件,不能写 =(,,=)data=.read()(data)

python学习之-文件和对象

文件和对象文件对象不仅可以用来访问普通的磁盘文件,还能够来访问普通的磁盘文件,也可以访问任何其他类型抽象层面的"文件".内建函数 open() 返回一个文件对象,对该文件进行后续相关的操作都要用到它.文件内建函数 open() 以及 file() 提供了初始化输入/输出(I/O)操作的通用接口.open() 内建函数成功打开文件后会返回一个文件对象,否则引发一个错误.当操作失败,会产生一个IOERROR异常.内建函数 open() 的基本语法:file_object = open(fi

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

文件IO操作相关系统编程 这里主要说两套IO操作接口,分别是: POSIX标准 read|write接口,函数定义在#include<unistd.h> ISO C标准 fread|fwrite接口,函数定义在#include<stdio.h> 有书上说POSIX标准与ISO C标准的区别在于文件读写是否带缓冲区,我则不是很认同,因此POSIX标准下的IO操作也是带缓冲区的,至于这两个标准下的IO性能谁更加好则不一定,因为这和缓冲区的大小,以及用户逻辑有很大关系. POSIX标准

Python OS简单文件/目录操作

Python OS简单文件/目录操作 Python的OS模块提供了丰富的文件和目录处理方法,这里指列举其中几个 参数不完全列举 删除.新建等操作 os.mkdir(path):在工作目录下创建一个名为path的文件夹 os.remove(path):删除路径为path的文件,如果不存在文件或者是一个文件夹则会抛出OSError os.rmdir(path):删除名为path的空文件夹,如果文件夹非空则会抛出OSError os.removedirs(path):递归删除文件夹 os.rename

python学习笔记文件操作(六)

1.文件操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 如下文件: 2017-03-24 11:25:06:349 - info: [debug] [AndroidBootstrap] Sending command to android: {"cmd":"shutdown"} 2017-03-24 11:25:06:355 - info: [debug] [AndroidBootstrap] Received command 

Python学习笔记——文件操作

python中,一切皆对象.   一.文件操作流程 (1)打开文件,得到一个文件句柄(对象),赋给一个对象: (2)通过文件句柄对文件进行操作: (3)关闭文件. 文件对象f通过open()函数来创建. open函数常用的三个参数:文件路径/名称.模式.encoding. 1 f = open('测试文件','r',encoding='utf-8') 2 print(f.read()) 3 f.close() 二.open函数中模式参数的常用值 值 描述 'r' 读模式 'w' 写模式 'a'

Python学习之--文件操作

Python中对文件操作可以用内置的open()函数 读文件 f=open('/home/test/test.txt','r') # 读模式打开文件 f.read() # 读取文件内容 除了正常的读取文件内容,一个常用的操作是判断文件内容是否为空,如下: if len(f.read())==0: # 如果文件内容为空 xxxx 判断一个文件或者路径是否存在,如下(这里需要在代码中导入os module: import os): file='/home/test/test.txt' dir='/h

python学习--day17-19 文件操作 r w a

python基础-文件操作   一.文件操作 对文件操作的流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件       打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作. 打开文件的模式有: r ,只读模式[默认模式,文件必须存在,不存在则抛出异常] w,只写模式[不可读:不存在则创建:存在则清空内容] x, 只写模式[不可读:不存在则创建,存在则报错] a, 追加模式[可读:   不存在则创建:存在则只追

PYTHON学习之文件操作;

文件内容替换for line in flielinput.input("filepath",inplace=1):line = line.repace("oldtext","newtext")print line, python中对文件.文件夹(文件操作函数)的操作需要涉及到OS模块和shutil模块.1.得到当前工作目录,即当前PYTHON脚本工作的目录路径:os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3