Python基本数据结构之文件操作
用word操作一个文件的流程如下:
1、找到文件,双击打开
2、读或修改
3、保存&关闭
用python操作文件也差不多:
- f=open(filename) # 打开文件
- f.write("我是野生程序员") # 写操作
- f.read() #读操作
- f.close() #保存并关闭
不过有一点跟人肉操作word文档不同,就是word文档只要打开了,就即可以读、又可以修改。 但Python比较变态,只能以读、创建、追加 3种模式中的任意一种打开文件,不能即写又读。
1、只读模式(读模式只可读)
- f = open('小重山', 'r', encoding='utf8') # 读模式只可读 写模式只可写
- data = f.read(8) # 里面的值是取出来多少个字符 在python3中英字母和汉字是一个字符 Hello 在学
- print(data)
- f.close()
2、只写模式(写模式只可写,在创建对象的同时将文本里原本的内容清空掉)
- f = open('小重山2', 'w', encoding='utf8') # 写模式只可写,在创建对象的同时将文本里原本的内容清空掉
- # 如果没有文件名将创建一个新的文件
- print(f.fileno()) # 操作句柄 本质上就是一个对象
- f.write('Hello World\n')
- f.write('xiaohu')
- f.close() # 关闭文件
3、追加模式(在文件内容后面添加新的内容 追加模式)
- f = open('小重山2', 'a', encoding='utf8') # 'a'在文件内容后面添加新的内容 追加模式
- f.write('\nHello World\n')
- f.write('alex')
- time.sleep(5)
- # f.close() # 关闭文件
4、混合模式
(1)r+(读写模式)
- f = open('小重山', 'r+', encoding='utf8')
- print(f.readline())
- f.write('岳飞')
- for i in f:
- print(i.strip()) # 一行一行的读取
- f.close()
(2)w+(写读模式,w+先清空)
- f = open('小重山', 'w+', encoding='utf8')
- print(f.readline()) # 读不出来内容 因为w+先清空
- f.write('岳飞')
- print(f.tell()) # 还是读不出内容,因为光标在输入的内容后面,后面是没有内容的
- f.seek(0) # 要想在控制台显示内容,就要移动光标
- for i in f:
- print(i.strip()) # 移动光标之后就能看到内容了
- f.close()
(3)a+(追加读模式)
- f = open('小重山', 'a+', encoding='utf8')
- print(f.tell()) # 在文本内容末尾
- print(f.readline()) # 此时控制台是没有显示任何内容的,因为光标在'a+'模式中在内容的末尾
- f.close()
用法
1、文件操作之flush及遍历文件最优算法(1)
- print(f.readline()) # 输出文件第一行的内容 换行符也打印了
- print(f.readline()) # 输出文件下一行的内容
- print(f.readlines()) # 使用列表将一行一行的内容输出 换行符\n也输出
- number = 0
- a = f.readlines() # 使用列表将一行一行的内容存起来
- for i in a: # 使用for循环来将列表内容输出
- number += 1
- if number == 2:
- # print(i.strip(), 'xiaohu') # 加strip()方法去掉换行
- i = '*****'.join([i.strip(), 'iiii']) # 字符串拼接用 join 不要用 +
- print(i.strip())
- f.close() # 关闭文件
2、文件操作之flush及遍历文件最优算法(2)
- f = open('小重山2', 'a', encoding='utf8')
- for i in range(30):
- sys.stdout.write("*") # stdout 是一个终端的输出显示
- sys.stdout.flush()
- time.sleep(0.2) # 每隔0.2秒显示
- for i in range(30):
- print('*',end=' ',flush=True)
- time.sleep(0.2) # 每隔0.2秒显示
- f.truncate(5) # 在光标30处后面全删 'w'中全部格式化 ‘a’中正常截断
- f.write('Hello world')
- f.truncate(5)
- f.close()
3、在某一行末尾添加字符串添加
- f = open('小重山', 'r+', encoding='utf8')
- number=0
- for line in f:
- number+=1
- if number==6:
- line=''.join([line.strip(),'xiaohu'])
- # f.write('xiaohu') # 写永远是在最后一行写 所以直接write()行不通!!!!!!! 因为存储机制决定了无法修改
- print(line.strip())
- f.close()
4、将一个文件里的内容写到另一个文件里,并且修改某一行
- f_read=open('小重山','r',encoding='utf-8')
- f_write = open('小重山2','w',encoding='utf-8')
- number = 0
- for line in f_read:
- number+=1
- if number==5:
- print(line)
- line='hello 岳飞\n' # 将这一行内容进行修改
- print(line)
- f_write.write(line) # 将一个文件里的内容一行一行写到另一个文件里
- f_read.close()
- f_write.close()
5、文件操作之with方法
- with open('log','r') as f: # 只要退出with代码块,自动帮你关,相当于f.close(),
- f.readline()
- f.read()
- with open('log1','r',encoding='utf-8') as f_read,open('log2','w',encoding='utf-8') as f_write: # 可以同时管理多个文件
- # 相当于f_read=open('小重山','r',encoding='utf-8')
- # f_write = open('小重山2','w',encoding='utf-8')
- for line in f_read:
- ....
Python基本数据结构之文件操作的更多相关文章
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法
知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...
- Python基础-week03 集合 , 文件操作 和 函数详解
一.集合及其运算 1.集合的概念 集合是一个无序的,不重复的数据组合,它的主要作用如下 *去重,把一个列表变成集合,就自动去重了 *关系测试,测试两组数据之前的交集.并集.差集.子集.父级.对称差集, ...
- Python基本语法_文件操作_读写函数详解
目录 目录 软件环境 file文件对象 open文件操作 读文件 read读取所有文件内容 readline获取一行内容 readlines读取所有文件内容 readreadlinereadlines ...
- Python基础7:文件操作
[ 文件操作] 1 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 现有文件如下: 昨夜寒蛩不住鸣. 惊回千里梦,已三更. 起来独自绕阶行. 人悄悄,帘外月胧 ...
- python函数基础 与文件操作
函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...
- Python 第三天 文件操作(2)
文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和 fi ...
- python学习笔记4(文件操作)
文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”) 直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...
- Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数
1. 集合 1.1 特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...
随机推荐
- 重新整理django中Auth模块
0907自我总结 重新整理django中Auth模块 from django.contrib import auth 一.设置 默认Auth表单 auth默认是使用自带的user表单 自定义Auth表 ...
- java中的静态
static静态 public static void main 类只是用来存储和被调用的,而对象是需要执行的,执行时就必定需要知道程序的入口,这个入口就是由main所在的位置. Java的类中没有m ...
- NOIP2009 Hankson 的趣味题 : 数论
题目描述 Hanks 博士是 BT (Bio-Tech,生物技术) 领域的知名专家,他的儿子名叫 Hankson.现在,刚刚放学回家的 Hankson 正在思考一个有趣的问题. 今天在课堂上,老师讲解 ...
- MFC::使用mysql
下载mysql-installer-community-5.7.16.0.msi,安装 mysql server即可. 创建工程包含头文件 #include "winsock.h" ...
- 11.Linux用户特殊权限
1.特殊权限概述 前面我们已经学习过 r(读).w(写). x(执行)这三种普通权限,但是我们在査询系统文件权限时会发现出现了一些其他权限字母,比如: 2.特殊权限SUID set uid 简称sui ...
- 通过一个生活中的案例场景,揭开并发包底层AQS的神秘面纱
本文导读 生活中案例场景介绍 联想到 AQS 到底是什么 AQS 的设计初衷 揭秘 AQS 底层实现 最后的总结 当你在学习某一个技能的时候,是否曾有过这样的感觉,就是同一个技能点学完了之后,过了一段 ...
- 远程控制服务(SSH)之Linux环境下客户端与服务端的远程连接
本篇blog将讲述sshd服务提供的两种安全验证的方法,并且通过这两种方法进行两台Linux虚拟机之间的远程登陆. 准备工作: (1) 准备两台安装有Linux系统的虚拟机,虚拟机软件采用VM ...
- 小白学 Python(9):基础数据结构(列表)(上)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- SpringBoot学习(二)探究Springboot启动机制
引言: SpringBoot为我们做的自动配置,确实方便快捷,但是对于新手来说,如果不大懂SpringBoot内部启动原理,以后难免会吃亏.所以这次博主就跟你们一起探究一下SpringBoot的启动原 ...
- tp5底层源码分析之------tp5.1类的自动加载机制
tp框架作为国内主流框架,目前已经发布了6.0版本,相当于3.*版本是进行了重构,今天我们从源码的角度来研究下tp5.1自动加载的实现 作为单入口框架,从入口文件看起,入口文件在public/下,那么 ...