文件操作流程
1.打开文件,得到文件句柄并赋值给一个变量
2.通过句柄对文件进行操作
3.关闭文件

打开模式

python中有神奇的三种读操作:read、readline和readlines

read()  : 一次性读取整个文件内容。推荐使用read(size)方法,size越大运行时间越长

readline()  :每次读取一行内容。内存不够时使用,一般不太用

readlines()   :一次性读取整个文件内容,并按行返回到list,方便我们遍历

读取文件及光标控制:

"""
读取文件示例
只有读取时候才受光标的影响
"""
###全部读取
f=open("yesterday",mode="r",encoding="utf-8")
print(f.tell()) #告诉当前光标位置
#>>>0
print(f.readlines()) ##读取文件全部内容,返回list
#>>>[all file content]
print(f.tell()) #告诉当前光标,
#>>> 235
print("round 2:",f.read())
#>>>round 2: ##因为光标位置在尾部,所以读取不到任何信息
f.seek(0) #把光标移动到开始位置
print("round 3 : ",f.read())
#>>>all file content

同时读写文件:  

f=open("yesterday",mode="r+",encoding="utf-8")
w=open("new_yesterday",mode="w",encoding="utf-8") for line in f: ##遍历文件内容最常用方法,适用于大文件
if "test3" in line:
line=line.replace("test3","TEST3")
w.write(line)
f.close() ###文件打开后必须关闭,否则浪费内存

flush()方法:

将缓冲区中的数据立刻写入文件,同时清空缓冲区,不需要是被动的等待输出缓冲区写入。

w=open("flush_demo",mode="r+",encoding="utf-8")

for i in range(10):
w.write(str(i))
w.flush() ##把缓冲区的内容刷到文件里
print(w.name) ###打印文件名
w.close()

  

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open("yesterday",mode="r+",encoding="utf-8") as f:
for line in f:
print(line) ####支持同时打开多个文件
with open("yesterday",mode="r+",encoding="utf-8") as f1, open("new_yesterday",mode="r+",encoding="utf-8") as f2:
for line1 in f1:
print(line1)

示例: 

读取文件示例:

import os
Filename=raw_input("please input filename that you will open: ")
if os.path.exists(Filename):##检查文件是否存在
try:
Filehandle=open(Filename,"r") except Exception,e: ##捕获Exception的错误 存储到e里面。其中Exception是异常的基类
print e else:
for words in Filehandle:
print words
Filehandle.close()
else:
print "%s not exits"%Filename

  

写入文件示例:

import os
lnend=os.linesep ##windows行结束符号是“\r\n”
FileName=raw_input("please input filename:")
while True:##检查该文件是否存在,当执行到break时跳出while循环
if os.path.exists(FileName):##检索脚本所在目录的位置
print "%s already exits" %FileName
FileName=raw_input("please input filename:")
else:
break
ALL=[]##创建空的列表用于存储输入内容
print "please input words (ok to stop inputing)\n"
while True:##当执行到break时跳出while循环
words=raw_input(">>")
if words=="ok":
break
else:
ALL.append(words)##循环的往列表添加内容
FileHandle=open(FileName,"w")
FileHandle.writelines(["%s%s" %(x,lnend) for x in ALL] )##函数writelines(list)可以将list写入到文件中,但是不会在list每个元素后加换行符,因此需要lnend换行符。同样write(str)把str写到文件中,write()也不会在str后加上一个换行符
FileHandle.close()
print "DONE"

  

【python】实例-读取已有文件的内容的更多相关文章

  1. C#中选中指定文件并读取类似ini文件的内容

    一.背景 由于项目中需要去读取设备的配置信息,配置文件的内容和INI配置文件的格式类似,所以可以按照INI文件的方式来处理.涉及如何打开一个文件,获取打开的文件的路径问题,并读取选中的文件里边的内容. ...

  2. Python 读取本地*.txt文件 替换 内容 并保存

    # r    以只读的方式打开文件,文件的描述符放在文件的开头# w    打开一个文件只用于写入,如果该文件已经存在会覆盖,如果不存在则创建新文件 #路径path = r"D:\pytho ...

  3. Python 实例——进度条,文件读取

    进度条: import sys import time for i in range(50): sys.stdout.write("*") sys.stdout.flush() t ...

  4. python脚本 读取excel格式文件 并进行处理的方法

    一.安装xlrd模块 pip install xlrd 二.读取excel文件 try: excel_obj = xlrd.open_workbook("文件路径") except ...

  5. python中 .write 无法向文件写入内容

    问题代码如下 links = open("new") out = open("out.txt","w+") for link in link ...

  6. python练习六十三:文件处理,读取文件内容,按内容生成文件

    python练习六十三:文件处理 假设要读取code.txt文件中内容,code.txt文件内容如下 01 CN Chinese 02 US United States of America 03 J ...

  7. python练习六十一:文件处理,读取文件内容

    python练习六十一:文件处理,读取文件内容 假设要读取text.txt文件中内容 写文件(如果有文件,那直接调用就行,我这里自己先创建的文件) list1 = ['python','jave',' ...

  8. Python学习(15)文件/IO

    目录 Python 文件I/O 打印到屏幕 读取键盘输入 打开和关闭文件 File对象属性 文件定位 重命名和删除文件 Python的目录 Python 文件I/O 本章只讲述所有基本的的I/O函数, ...

  9. .NET Core的文件系统[1]:读取并监控文件的变化

    ASP.NET Core 具有很多针对文件读取的应用.比如我们倾向于采用JSON文件来定义配置,所以应用就会涉及针对配置文件读取.如果用户发送一个针对物理文件的HTTP请求,应用会根据指定的路径读取目 ...

随机推荐

  1. @RequiresPermissions ,@RequiresUser , @RequiresGuest ,@RequiresRoles 解释

    转载地址:https://blog.csdn.net/AinUser/article/details/64920968?locationNum=1&fps=1 @RequiresPermiss ...

  2. Python简单网页爬虫——极客学院视频自动下载

    http://blog.csdn.net/supercooly/article/details/51003921

  3. en_o out1

    1● o əʊ ɒ ə ɔː ʌ ʊ:     2● oor ʊə ɔː   3● oo u u:     4● or ɜː ə ɔː   5● oar ore ɔː   6● ow   əʊ aʊ ...

  4. adb命令(笔记)

    1.adb shell su   进入root管理员权限(前提是手机已root) 2.chmod 可以修改文件夹的权限: $ adb shell $ su # chmod -R 777  /data/ ...

  5. UVALive 4174

    DES:给出一个字符串.连续空格的个数代表一个新的字符.奇数个表示0.偶数个表示1.然后根据这个码作为ASCII码.写出对应的字符.就是统计空格个数.二进制转换成十进制的小模拟.但是比赛的时候敲得很不 ...

  6. cas 服务端相关配置

    SSO-安全证书配置 CAS默认使用的是HTTPS协议,如果对安全要求不高,可以使用HTTP协议 修改deployerConfigContext.xml(cas/WEB-INF)增加参数 p:requ ...

  7. js运动例子1

    <!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...

  8. 框架:Lucene.net

    Lucene.net 性能<第八篇> 摘要: 一.IndexReader性能分析 IndexReader完成了打开所有索引文件和提供底层reader API等繁重的工作,而IndexSea ...

  9. 配置pycharm 一键安装 requirements.txt,一键生成requirements.txt

    如上配置 打开项目,在requirements.txt上点右键,就可以安装了. 安装效果如下: 可以看出运行的命令是   C:\Python\Python36/scripts/pip install ...

  10. 远程访问Centos6.5上的mysql或者mariadb(navicat)

    问题背景 1 环境 物理主机操作系统Centos6.5 虚拟主机KVM:centos6.5 64位min版本(虚拟机安装有台) 网络:桥接模式 2 问题 yum安装mariadb10/mysql6.5 ...