【需求】

1. 获取文本内容,提取内容中的可用信息,对信息进行清洗等一系列处理

2. 算法输出一些内容,保存到文本文件中,便于使用

【函数】

在Python中open()函数是用来打开文件的,包括文本文件

# 在Python3.x中 open函数的原型  默认mode = 'r'
f = open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

file: 文件名  (eg: 'example.txt') 前提是改文件在当前路径下,如果不在需要增加路径(eg: E:\\'example.txt')

mode: 文件打开的方式

 #目前最常使用的是  'r' :只读(需求1中可用)
# 另外一个是 'a' : 追加写入(不会清空文本中的原有数据)
# 'w':写入,但会清空原有数据,重新创建文本,覆盖之前
#其他还有很多,实际使用用不到,值得注意的是 ‘b’ 二进制读取 和 写入 即‘rb’'wb'等 如图像或音频等

buffering: 缓冲 默认为0 无缓冲  1是按行缓冲 >1是按设定字节缓冲

初步理解:在文本写入的时候,是先写到内存中在写入磁盘的,也只有写入磁盘中的文本我们才能打开看到。

无缓冲  ->  写入的文本直接进入磁盘

有缓冲  -> 内容先暂存在内存中,只有f.close() 关闭文件,才将内容刷新到磁盘中保存起来

## 暂时用不到该参数

encoding: 文件编码方式 常用‘utf-8’ 【注】用什么方式写入就要以什么方式打开 否则就会出现乱码

可以用Notepad++  打开文本,上面可以看到文件的编码方式,同时可以更改编码方式

【示例】

# 文本写入
f = open("E:\Learning_2019\write_somthing.txt",mode= 'w',encoding='utf-8')
f.write("1. keep working\n 2. do yourslef\n 3. to be NO.1\n 4. what are you 弄啥嘞 ")
f.close()
# 文本读取
f = open("E:\Learning_2019\write_somthing.txt",mode= 'r',encoding='utf-8')
print(f.read())
"""
1. keep working
2. do yourslef
3. to be NO.1
4. what are you 弄啥嘞
"""

文本读取:

f.read()  读取文本中的所有内容

f.readline()  读取文本中的一行,从第一行开始

f.readlines()  读取文本中的所有行 输出列表

2019.09.24更新

Python读取json文件中的内容

逐行获取json内容得到的是str,需要json.loads()转换成字典,之后在根据字典['keys'] 提取value

  import json
with open(f'123.json','r') as f:
while(1):
# 读取每行内容 类型str
line = f.readline()
total_num += 1
if not line:
break
# 将str转换成dict
dict_line = json.loads(line)

Python_文本的读写操作的更多相关文章

  1. python中文本的读写操作

    文本的操作 函数的排序操作: def func(i): return i[2] list=[('曹操',101,'c'),('吕布',100,'d'),('刘备',200,'l'),('大乔',50, ...

  2. C++对txt文本进行读写操作

    输入输出,是每个程序员的基本功,尤其是对文本的输入和输出.最近,自己在这方面做了一些总结,不是很全面,希望在以后学习和工作的过程中慢慢补充,积累点点滴滴.P.S. 今天天气不错,雾霾散了,天空晴朗,惠 ...

  3. FileStream对文本进行读写操作

    class FileHelper { /// <summary> /// 检验文件路径是否合法 /// </summary> /// <param name=" ...

  4. 【PyQt5-Qt Designer】文本框读写操作

    主要内容: 1.读.写 输入控件(Input Widgets)中的内容(str) 2.保存数据到txt文件 3.从txt文件中读内容,与输入控件中内容比较 将上述各种输入控件(Input Widget ...

  5. python_线程读写操作<一>

    线程读写操作 import threading,random,queue q = queue.Queue() alist=[] def shengchan(): for i in range(10): ...

  6. JAVASE02-Unit08: 文本数据IO操作 、 异常处理

    Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.i ...

  7. JAVASE02-Unit07: 基本IO操作 、 文本数据IO操作

    基本IO操作 . 文本数据IO操作 java标准IO(input/output)操作 package day07; import java.io.FileOutputStream; import ja ...

  8. 使用Python对Excel表格进行简单的读写操作(xlrd/xlwt)

    算是一个小技巧吧,只是进行一些简单的读写操作.让人不爽的是xlrd和xlwt是相对独立的,两个模块的对象不能通用,读写无法连贯操作,只能单独读.单独写,尚不知道如何解决. #①xlrd(读) #cod ...

  9. io流对文件读写操作

    public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedRead ...

随机推荐

  1. Winform中实现ZedGraph新增自定义Y轴上下限、颜色、标题功能

    场景 Winform中实现ZedGraph的多条Y轴(附源码下载): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/1001322 ...

  2. Linux 笔记 - 第二十一章 配置 NFS 服务

    一.前言 NFS(Network File System,网络文件系统),主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录.NFS 客户端(一般为应用服务器,例如web)可以通 ...

  3. vue2.0搭建vue手脚架(vue-cli)

    1.安装node.js 从node官网下载并安装node,安装步骤很简单,只要一路“next”就可以了.安装完成后,打开命令行工具输入命令node -v,如下图,如果出现对应版本号,就说明安装成功了. ...

  4. Nginx 配置Https转发http、 websocket

    系统启动Nginx后,报 [emerg] bind() to 0.0.0.0:XXXX failed (13: Permission denied)错误的处理方式,分为两种: 第一种:端口小于1024 ...

  5. Java线程池的拒绝策略

    一.简介 jdk1.5 版本新增了JUC并发编程包,极大的简化了传统的多线程开发.前面文章中介绍了线程池的使用,链接地址:https://www.cnblogs.com/eric-fang/p/900 ...

  6. Mysql学习笔记整理之选用B+tree结构

    为什么mysql不使用平衡二叉树? 数据处的深度决定着他的IO操作次数,IO操作耗时大 每一个磁盘块保存的数据量太小 B+Tree和B-Tree的区别? B+树几点关键字搜索采用闭合区间 B+树非叶节 ...

  7. demo演示如何写一个无配置格式统一的日志

    一.背景 大量项目在使用logback记日志,有部分项目使用日志混乱,格式不统一,多数人搞不懂配置文件,导致配置错误,现在需要开发一套统一的.少配置的日志组件,方便使用. 二.设计思路 尽量采用0配置 ...

  8. select2 分组后的选项无法被选中

    在使用select2组件的过程中发现分组下的选项无法选中,与分组在同一级的选项可以被选中! 1.所用select2版本select2-4.0.32 2.HTML代码: <input id=&qu ...

  9. 第十一周java课堂测试

    Main.java package class_third_copy; import java.util.Scanner; import classthird.Test; import classth ...

  10. Spring Boot2 系列教程(九)Spring Boot 整合 Thymeleaf

    虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在做前后端不分的开发,而在前后端不分的开发中,我们就会需要后端页面模板(实际上,即使前后端分离,也会在一些场景下需要使用页面模板, ...