文件操作流程
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. spring boot 学习(十四)SpringBoot+Redis+SpringSession缓存之实战

    SpringBoot + Redis +SpringSession 缓存之实战 前言 前几天,从师兄那儿了解到EhCache是进程内的缓存框架,虽然它已经提供了集群环境下的缓存同步策略,这种同步仍然需 ...

  2. PHP打开空白的解决办法

    先打开错误提示,再查找原因 找到php.ini # 显示错误:On开启,Off关闭 display_errors = On 也可在php文件中加入以下任意一行代码 # 禁用错误报告 error_rep ...

  3. bzoj2662

    题解: spfa最短路径 dp[i][j]表示到i,用了j掌权 然后转移 代码: #include<bits/stdc++.h> using namespace std; ; int n, ...

  4. docker官方windows安装

    https://docs.docker.com/engine/installation/windows/

  5. Java——File类成员方法

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  6. MyEclipse持续性开发教程:用JPA和Spring管理数据(三)

    MyEclipse红运年货节 在线购买低至69折!火爆开抢>> [MyEclipse最新版下载] 本教程介绍了MyEclipse中的一些基于JPA / Spring的功能.有关设置JPA项 ...

  7. Installing MIB in Ubuntu and Solving the Error “SNMP Cannot Find Module …”

    Has noticed an error after executing the command snmpwalk with the indication of MIB instead of OID: ...

  8. IntelliJ IDEA 2017.01配置jdk和tomcat

    之前开发Web项目都是用myeclipse或者eclipse,最近想用IDEA这个编辑器去配置一个Web项目,因为是新手,加上对界面的操作不熟练,所以在配置的过程中遇到了一些难题.最后配置成功,并且可 ...

  9. [LeetCode&Python] Problem 496. Next Greater Element I

    You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of n ...

  10. BZOJ5091: [Lydsy1711月赛]摘苹果【期望DP】

    Description 小Q的工作是采摘花园里的苹果.在花园中有n棵苹果树以及m条双向道路,苹果树编号依次为1到n,每条道路的两 端连接着两棵不同的苹果树.假设第i棵苹果树连接着d_i条道路.小Q将会 ...