文件操作流程
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. office每次打开都要重新配置

    office每次打开都要重新配置     1● 找到路径 C:\Program Files\Common Files\microsoft shared\OFFICE14\Office Setup Co ...

  2. Css的向左浮动、先右浮动、绝对定位、相对定位的简单使用

    1.div层的浮动 1)div向左浮动.向右浮动 <!doctype html> <html> <head> <meta charset="utf- ...

  3. hdu4333

    题解: EX_KMP 先把串复制一遍放到后面 这样旋转就是每一个前缀了 然后做一个EX_KMP 然后看一下后一个字符谁大谁小 代码: #include<cstdio> #include&l ...

  4. ThreadPoolTaskExecutor多线程使用,及线程池配置

    1.配置 ThreadPoolTaskExecutor bean <?xml version="1.0" encoding="UTF-8"?> &l ...

  5. L240

    Giant rocks from space are falling from the sky more than they used to, but don't worry. For the pas ...

  6. 由pg_xlogdump统计信息想到的问题

    最近深入理解了Checkpoint的相关逻辑,再来看WAL日志的一些设置,又有了新的收获. 1.回顾pg_xlogdump出来的wal日志信息: 2.wal中FPI的占比很高问题分析: 3.重申ful ...

  7. phpStrom激活

    直接用浏览器打开 http://idea.lanyus.com/ ,点击页面中的“获得注册码”,然后在注册时切换至Activation Code选项,输入获得的注册码一长串字符串,便可以注册成功了!( ...

  8. 大数开根号java模板

    利用逼近的思路直接二分开方找出值 package lanqiao; import java.math.BigInteger; import java.util.Scanner; public clas ...

  9. 阿里、华为、腾讯Java技术面试题精选

    阿里.华为.腾讯Java技术面试题精选 2017-10-27 19:30技术/腾讯/华为 JVM的类加载机制是什么?有哪些实现方式? 类加载机制: 类的加载指的是将类的.class文件中的二进制数据读 ...

  10. AppStore 中的app怎么样生成二维码,来提供下载

    首先在:iTunes里面找到  AppStore模块,然后搜索你的 App 在App 下载选项有 Copy Link ,拷贝地址 在二维码生成器里直接生成二维码就,OK 如果,想要多个和安卓做一个二维 ...