一、python打开文件

#=====================python 文件打开方式 open()=====================
# open(fileName,type) type="r" 以只读方式打开文件 ,该文件必须存在
file_r=open("E:\\python\\hello.txt","r"); # open(fileName,type) type="w"
#1、以只写方式打开文件 ,该文件如果不存在就创建文件
#2、如果该文件存在并且有内容,则会清空内容
file_w=open("E:\\python\\hello_w.txt","w"); # open(fileName,type) type="a" 以追加的方式打开文件
file_a=open("E:\\python\\hello_w.txt","a"); # open(fileName,type) type="r+" 或 type="w+" 以读写的方式打开文件
file_rr=open("E:\\python\\hello_w.txt","r+"); # open(fileName,type) type="a+" 以追加和读写的方式打开文件
file_aa=open("E:\\python\\hello_w.txt","a+");

二、python读取文件

 

#=====================python 文件读取方式 read()=====================
# read() 读取全部 read(size) 读取指定数量的字符
def readTest():
file_r=open("E:\\python\\hello.txt","r");
str=file_r.read();
print(str);
file_r.close();
#readline() 读取一行 readline(size) 读取一行中的size个字符(无论size是否大于一行的字符个数,总返回一行中的字符个数)
def readLineTest():
file_r=open("E:\\python\\hello.txt","r");
str=file_r.readline(2);
print(str);
file_r.close();
# readLines() 读取全部文件(io.DEFAULT_BUFFER_SIZE),返回每一行所组成的列表(如果文件很大会很占用内存空间)
def readLinesTest():
file_r=open("E:\\python\\hello.txt","r");
str=file_r.readlines(18);
print(str);
file_r.close(); #iter: 使用迭代器读取文件
def IterTest():
file_r=open("E:\\python\\hello.txt","r");
iter_f=iter(file_r);#将文件转为迭代器,
lines=0;
for line in iter_f:
print(line);
lines+=1;
print(lines);
file_r.close();

三、python写入文件

  在介绍文件写入时,先了解一个文件缓存区的概念。

cpu在操作物理内存中的数据(读写)速度是很耗时的,我们的计算机为了提高运行效率,我们的计算机cup内核会对数据参数一个高速缓存区,cup会先操作高速缓存区中的数据,然会在某一时刻将高速缓存区中的数据写入到物理内存中。

所以在文件写入时我们不得不提两个方法 close() 与flush();

#=====================文件关闭 close()====================
# 将缓存数据写入磁盘
# 在linux系统中每个进程打开文件的个数是有限的(如果超过该限度,再打开文件就会失败)所以在每次使用完文件后一定要关闭该文件
#===================== flush()====================
# 将缓存数据写入磁盘 关于cpu缓存代码演示:
创建一个空文件hello.txt
def writerTest():
file=open("E:\\python\\hello.txt","w");
file.write("hello Word");

结果:hello.txt 还是为空

使用:close()会flush()方法
def writerTest():
file=open("E:\\python\\hello.txt","w");
#将数据写入磁盘文件中,但一般我们的cup会有一个文件缓存区,数据一般会先写入cpu的文件缓存区中。
#如果写入字符的数据量大于或等于cpu的文件缓存区大小,那cpu会将该数据自动写入到次磁盘文件中,剩余的字符我们还是需要
#调用flush() 或 close() 方法才能将数据全部写入磁盘文件中。
file.write("hello Word");
#调用flush() 告诉cpu将文件缓存区中的数据写入磁盘文件中,或者直接调用 close()f方法
file.flush();
file.close();

结果:打开hello.txt 内容为 hello Word

writerLines(str):写多行到文件
def writerLinesTest():
file=open("E:\\python\\hello.txt","w");
file.writelines("hello Word");
file.writelines(("hello_1","hello_2","hello_3"));
file.writelines(["hello_4","hello_5","hello_6"]);
file.close();

四、文件指针

#===================文件指针===================
#文件读写的问题
#写入文件后,必须打开才能读取写入的内容;读取文件后,无法重新再次读取读过的内容 #文件读取原理
#python在进行文件读取过程中,会产生一个文件指针,该指针会记录当前文件被读取的位置。 #如何操作文件指针
#seek(offert,whence):移动文件指针 offset:偏移量可以为负数。whence:偏移相对位置
#os.SEEK_SET:相对文件起始位置
#os.SEEK_CUR:相对文件当前位置
#os.SEEK_END:相对文件结尾位置
#如果文件指针的偏移量大于文件字符个数程序将报错
import os;
def seekTest():
file=open("E:\\python\\hello.txt","r+");
str=file.read(3);#读取三个字符
print(str);
index=file.tell();#获取当前文件指针的位置
print(index);#
#需求:将文件指针移动到起始位置
file.seek(0,os.SEEK_SET);
index=file.tell();
print(index);#
#需求:将文件指针移动到结尾位置
file.seek(0,os.SEEK_END);
index=file.tell();
print(index);#
file.close();

注意:

Python3不允许非二进制打开的文件,相对于文件末尾的定位,这是文档的原文:
In text files (those opened without a b in the mode 
string), only seeks relative to the beginning of the file are allowed
(the exception being seeking to the very file end with seek(0, 2)).(https://docs.python.org/3.2/tutorial/inputoutput.html#methods-of-file-objects

python学习 文件操作的更多相关文章

  1. Python学习---文件操作的学习1208

    1.1. 对文件操作基本操作: 操作流程: 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 注意:pyton中操作的文件是utf8保存的,打开文件时open函数是通过操作系统 ...

  2. python学习——文件操作

    打开文件 f = open(文件名, 文件打开模式,文件编码) ‘w’:只写模式,它是只能写,而不能读的.如果用’w’模式打开一个不存在的文件,则会创建新的文件开始写入:如果用’w’模式打开一个已存在 ...

  3. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  4. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  5. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  6. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  7. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  8. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  9. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

随机推荐

  1. Nginx开启Gzip压缩

    .Vim打开Nginx配置文件 vim /usr/local/nginx/conf/nginx.conf .找到如下一段,进行修改 gzip on; gzip_min_length 1k; gzip_ ...

  2. jsQunit

    1:什么是单元测试? 1.1:单元测试又称为模块测试,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.单元测试主要是用来检验程式的内部逻辑,也称为个体测试.结构测试或逻辑驱动测试.通常 ...

  3. 电子数字 网易游戏在线笔试 第一题 hihocoder

    题目链接 http://hihocoder.com/contest/ntest2016spring1/problem/1 这个题目有几个算法考点: (1)对于一个LED数码管(由7个发光二极管封装在一 ...

  4. 将一个数组分成奇数部分和偶数部分,并分别排好序 CVTE

    给定一个数组,将奇数放到前面,偶数放到后面,各自排好序 (2016年3月12日晚上,CVTE笔试编程第一道题): 思路很简单: (1)先将数组中的奇数和偶数分开(利用两个指针遍历一遍即可,同时统计好数 ...

  5. Postman-CI集成Jenkins

    Postman-简单使用 Postman-进阶使用 Postman-CI集成Jenkins Newman 官方说明:Postman's command-line companion lets you ...

  6. Python学习之路-Day2

    数据类型常用操作 不管是查整数还是查布尔或者是列表...要记住 dir(int)   查看某个类型的功能 help(int) 查看该类型的功能及文档说明 type(4)   查看某个字符或数字的类型- ...

  7. toad的基本操作

    1.把鼠标停在sql所在行,然后ctrl+Enter直接执行当前sql. 2.解决Toad对中文显示乱码问题(如果数据库所在主机的NLS_LANG是AMERICAN_AMERICA.WE8ISO885 ...

  8. static在C中有了第二种含义:用来表示不能被其它文件访问的全局变量和函数

    C++变量根据定义位置的不同,具有不同的作用域,作用域可分为6种:全局作用域,局部作用域,语句作用域,类作用域,命名作用域和文件作用域. 从作用域看: 全局变量具有全局作用域.全局变量只需在一个源文件 ...

  9. ant常用命令

    1.ant -version

  10. d3 API scale

    比例尺有很多种类型,每一种类型都有各自的方法. 常用的是linear log oridinal linear .rangeRound(): 输出的值 四舍五入 .copy():返回一个独立的副本 .t ...