文件操作三步走:打开、读写、关闭。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

file参数指定了被打开的文件名称。

mode参数指定了打开文件后的处理方式。

encoding参数指定对文本进行编码和解码的方式,只适用于文本模式,可以使用Python支持的任何格式,如GBK、utf8、CP936等等。

文件打开模式

例:向文本文件中写入内容,然后再读出

s = 'Hello world\n文本文件的读取方法、文本文件的写入方法\n'
with open('sample.txt','w') as fp: #默认使用cp936编码
fp.write(s*5)
#生成的文件放在.py文件所在文件夹 with open('sample.txt') as fp:
print(fp.read()) E:\pytho_pycharm\venv\Scripts\python.exe E:/pytho_pycharm/prac.py
Hello world
文本文件的读取方法、文本文件的写入方法
Hello world
文本文件的读取方法、文本文件的写入方法
Hello world
文本文件的读取方法、文本文件的写入方法
Hello world
文本文件的读取方法、文本文件的写入方法
Hello world
文本文件的读取方法、文本文件的写入方法 Process finished with exit code 0

例:将一个CP936编码格式的文本文件中的内容全部复制到另一个使用UTF8编码的文本文件中。

#将一个CP936编码格式的文本文件中的内容全部复制到另一个使用UTF-8编码的文本文件中
def filecopy(srcc,dstt,srccEncoding,dsttEncoding):
with open(srcc,'r',encoding=srccEncoding) as srcfp:
with open(dstt,'w',encoding=dsttEncoding) as dstfp:
dstfp.write(srcfp.read()) filecopy('sample.txt','sample_new.txt','cp936','utf8') #读取这两个文件
with open('sample.txt') as fp: #默认为CP936编码
print(fp.read())
print()
with open('sample_new.txt',encoding='utf-8') as fp: #如果是其他编码需要有(encoding = )
print(fp.read())

  

例:遍历并输出文本文件的所有行内容

with open('sample.txt') as fp:
for line in fp:
print(line,end='')

  

案例:

根据考试成绩,统计学科等级水平。 分析:某中学对学生的附加科目进行能力测试,并按以下标准统计学科等级水平。

(1)生物和科学两门课都达到60分,总分达到180分为及格;

(2)每门课达到85分,总分达到260分为优秀;

(3)总分不到180分或有任意一门课不到60分,为不及格。

学生成绩原始数据如图所示。

编程要求:从score.txt文件中读取学生成绩数据,判定等级并写入level.txt文件中。

L = list(open('score.txt')) #文件中的每一行都是列表的一个元素
f = open('level.txt','w') #新建level文件夹写入
flag = 1 for s in L:
x = s.split()
if flag:
flag = 0
f.write("%s\t%s\t%s\t%s\t是否及格\n" % (x[0], x[1], x[2], x[3]))
continue
for i in range(len(x)): #假如一行有多个类别就要用for循环
x[i] = int(x[i])
sum = x[1]+x[2]+x[3]
if x[1]>=85 and x[2]>=85 and x[3]>=85 and sum>=260 :
key = '优秀'
elif x[2]>=60 and x[3]>=60 and sum>=180:
key = '及格'
elif x[1]<60 or x[2]<60 or x[3]<60 or sum<180 :
key = '不及格'
f.write('%d\t%d\t%d\t%d\t%s\n'%(x[0],x[1],x[2],x[3],key))
f.close()
f = open('level.txt')
print(f.read())

  

s=open('score.txt')
f=open('level.txt','w')
x = s.readline().split()
f.write()
while True:
x=s.readline().split()
if len(x)==0:
break
for i in range(1,len(x)):
x[i]=int(x[i])
sum=x[1]+x[2]+x[3]
if x[1]>=85 and x[2]>=85 and x[3]>=85 and sum>=260:
key = "优秀"
elif x[2]>=60 and x[3]>=60 and sum>=180:
key = "及格"
else:
key = "不及格"
f.write()
s.close()
f.close()

  

python 文本文件操作的更多相关文章

  1. [Python学习笔记][第七章Python文件操作]

    2016/1/30学习内容 第七章 Python文件操作 文本文件 文本文件存储的是常规字符串,通常每行以换行符'\n'结尾. 二进制文件 二进制文件把对象内容以字节串(bytes)进行存储,无法用笔 ...

  2. 初学Python——文件操作第二篇

    前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串 ...

  3. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

  4. Python之路Python文件操作

    Python之路Python文件操作 一.文件的操作 文件句柄 = open('文件路径+文件名', '模式') 例子 f = open("test.txt","r&qu ...

  5. Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  6. 小学生都能学会的python(文件操作)

    小学生都能学会的python(文件操作) 1. open("文件路径", mode="模式", encoding="编码") 文件的路径: ...

  7. Python文件操作:文件的打开关闭读取写入

    Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...

  8. 字符编码和Python代码操作文件

    字符编码和Python代码操作文件 读写模式之a模式 # a模式 只追加模式 # 路径不存在:自动创建 with open(r'a.txt','a',encoding='utf8') as f: pa ...

  9. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

随机推荐

  1. map中entrySet和KeySet的区别

  2. tf.reduce_max 与 reduce 系列 API

    reduce 可以理解为 python 里的 reduce 函数: tensorflow 中有很多 reduce_ API,其用法完全相同 tf.reduce_max 以这个为例进行说明 def re ...

  3. nginx 缓存

    浏览器缓存与nginx缓存 浏览器缓存 优点:使用有效缓存时,没有网络消耗,速度快:即使有网络消耗,但对失效缓存使用304响应做到网络消耗最小化 缺点:仅提升一个用户的体验 nginx 缓存 优点:提 ...

  4. 9 HTML DOM事件监听&版本兼容&元素(节点)增删改查

    事件监听: 语法:element.addEventListener(event, function, useCapture); event:事件的类型,触发什么事件,注意不需要on作为前缀,比如cli ...

  5. nginx + keepalive 实现高可用

    https://blog.csdn.net/u010020099/article/details/82116474 ! Configuration File for keepalived global ...

  6. 四、linux基础-系统目录_安装_相关命令_调度

    4 系统目录-安装-版本4.1系统目录Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录. 在装完Linux系统以后会自动生成一下等目录, ...

  7. 【动画演示】:JS 作用域链不在话下

    作者:Lydia Hallie译者:前端小智来源:dev 点赞再看,养成习惯 本文 GitHub https://github.com/qq44924588... 上已经收录,更多往期高赞文章的分类, ...

  8. FTP的vsftpd.conf含义

    # 设置为YES时vsftpd以独立运行方式启动,设置为NO时以xinetd方式启动 #(xinetd是管理守护进程的,将服务集中管理,可以减少大量服务的资源消耗) listen=YES # 同上,如 ...

  9. 十五 Spring的AOP的注解的通知类型,切入点的注解

    Spring的注解的AOP的通知类型 @Before:前置通知 @AfterReturning:后置通知 @Around:环绕通知 @AfterThrowing:异常抛出通知 @After:最终通知 ...

  10. Vue 项目开发

    目录 Vue 项目开发 项目目录结构解析 入口文件 main.js (项目入口) 根组件 app.vue index.html 文件入口 router 路由 components 子组件 项目初始化 ...