文件操作逻辑?

  1. 打开文件,赋值给一个对象
  2. 用对象操作文件
  3. 关闭文件

如何打开文件?

在windows中,默认格式gbk,python3.x默认unicode(utf-8),要指定编码值

语法:

  f = open(“文件名”, 打开模式,encoding = “utf-8”)

  -- 打开文件,赋给f,f叫文件句柄(文件内存对象)

  f.操作

  f.close()        -- 要手动关闭

   - 句柄包含(文件名字,大小,字符编码,硬盘上起始位置)

另:

with open(“文件名”, 打开模式,encoding = “utf-8”) as f:

        -- 可以同时打开多个文件,逗号隔开

f.操作

   -- 不需要手动关闭,有个强制缩进

打开模式:

-- r 读                                - 不写默认,只能读取

-- w 写                              - 没有新建一个,有写入并且自动清空原本数据,只能写

-- a 追加                           - 写入数据追加在文件最后,只能追加

-- r+  读写                        - 写入数据以追加方式加入,可读(最多)

-- w+ 写读                        - 先新建文件,写入数据然后可以读(少用)

-- a+                                 - 追加读 (和r+效果一样)

-- rb  二进制读                  - 用于网络数据传输

-- wb 二进制写                 - write(字符.encode(“utf-8”)),或在字符前面多个字符b

二进制和字符串严格区分

-rU                - 换行字符适配,在linux中\n换行,在window中\r\n换行

-- 文件内容存取机制,插入数据,不会往后挤,而是覆盖掉

对文件有哪些操作?

-- f.read(数字)       - 写入数字就读取几个字符,不写读全部,f.readable(),文件可读?

      - 读取所有的值,第一次读取从文件指针出读,读完指针已经指向文件最后,所以第二次读取无值,可以通过文件指针操作把指针指向起点

  -- f.readline()             - 读取文件一行数据

  -- f.writ(字符)             - 打开文件有w,a模式,才能写,f.writable文件可写?

  -- f.tell()                     - 打印指针当前位置,和seek方法一起使用

  -- f.seek(数字)          - 指针回到指定位置,f.seekable()判断指针可移动?fttp和设备文件名

  -- f.encoding             - 打印文件编码

  -- f.fileno()                 - 返回操作系统文件句柄编号

  -- f.name()                 - 打印文件名字

  -- .flush                     - 强制把缓冲数据写入磁盘,对数据的时效性要求高

  -- f.truncate()            - 不写默认清空,从头截断多少个字符,断点后面内容清空

怎么用flush写一个在屏幕上打印的进度条?

import sys,time
for i in range(20):
sys.stdout.write('*')
sys.stdout.flush()
time.sleep(0.2)

如何更改文件内容?

  1. 先把文件加载到内存中,修改,最后写会磁盘,如果打开大文件,加载时间会有点长
  2. 打开文件,新建另外一个新文件,读,然后写,修改后写入新文件(不更改原文件,不需要加载到内存)

  如何用第二中方法更改文件内容?

    f =open(‘原文件’,’r’,encoding = ‘utf-8’)

    f_new = open(‘新文件’,’w’, encoding = ‘utf-8’)

    for line in f:

   if “想要修改的地方” in line:

  line = line.replace(“修改的内容”)

  f_new.write(line)

    f.close

    f_new.close

python_10_文件操作的更多相关文章

  1. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  2. 野路子出身PowerShell 文件操作实用功能

    本文出处:http://www.cnblogs.com/wy123/p/6129498.html 因工作需要,处理一批文件,本想写C#来处理的,后来想想这个是PowerShell的天职,索性就网上各种 ...

  3. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  4. 归档NSKeyedArchiver解归档NSKeyedUnarchiver与文件管理类NSFileManager (文件操作)

    ========================== 文件操作 ========================== 一.归档NSKeyedArchiver 1.第一种方式:存储一种数据. // 归档 ...

  5. SQL Server附加数据库报错:无法打开物理文件,操作系统错误5

    问题描述:      附加数据时,提示无法打开物理文件,操作系统错误5.如下图: 问题原因:可能是文件访问权限方面的问题. 解决方案:找到数据库的mdf和ldf文件,赋予权限即可.如下图: 找到mdf ...

  6. 通过cmd完成FTP上传文件操作

    一直使用 FileZilla 这个工具进行相关的 FTP 操作,而在某一次版本升级之后,发现不太好用了,连接老是掉,再后来完全连接不上去. 改用了一段时间的 Web 版的 FTP 工具,后来那个页面也 ...

  7. Linux文件操作的主要接口API及相关细节

    操作系统API: 1.API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用,应用层程序通过调用API来调用操作系统中的各种功能,来干活 文件操作的一般步骤: 1.在linux系统 ...

  8. C语言的fopen函数(文件操作/读写)

    头文件:#include <stdio.h> fopen()是一个常用的函数,用来以指定的方式打开文件,其原型为:    FILE * fopen(const char * path, c ...

  9. Python的文件操作

    文件操作,顾名思义,就是对磁盘上已经存在的文件进行各种操作,文本文件就是读和写. 1. 文件的操作流程 (1)打开文件,得到文件句柄并赋值给一个变量 (2)通过句柄对文件进行操作 (3)关闭文件 现有 ...

随机推荐

  1. 我的Python学习笔记(四):动态添加属性和方法

    一.动态语言与静态语言 1.1 动态语言 在运行时代码可以根据某些条件改变自身结构 可以在运行时引进新的函数.对象.甚至代码,可以删除已有的函数等其他结构上的变化 常见的动态语言:Object-C.C ...

  2. lbp特征提取(等价模式)

    LBP等价模式 考察LBP算子的定义可知,一个LBP算子可以产生多种二进制模式(p个采样点)如:3x3邻域有p=8个采样点,则可得到2^8=256种二进制模式:5x5邻域有p=24个采样点,则可得到2 ...

  3. 使用FormatMessage函数编写一个内核错误码查看器

    在编写驱动程序的时候,常用的一个结构是NTSTATUS,它来表示操作是否成功,但是对于失败的情况它的返回码过多,不可能记住所有的情况,应用层有一个GetLastError函数,根据这个函数的返回值可以 ...

  4. Java集合干货——ArrayList源码分析

    ArrayList源码分析 前言 在之前的文章中我们提到过ArrayList,ArrayList可以说是每一个学java的人使用最多最熟练的集合了,但是知其然不知其所以然.关于ArrayList的具体 ...

  5. vue单页面打包文件大?首次加载慢?按需加载?是你打开方式不对

    部署各vue项目,走了一遍坑.... vue单页面应用刷新404 找到nginx多网站配置文件:类似nginx/sites-available/www.baidu.com server { liste ...

  6. Elastic-Job-一个分布式调度解决方案

    注:Elastic-Job是一个分布式调度解决方案,由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成.Elastic-Job-Lite定位为轻量级无中心化 ...

  7. C#学习笔记-基础知识篇(不定期更新)

    1.父类必须包含构造函数么? 父类必须要有一个构造函数,有参无参都可以. 构造函数是对象的基本,没有构造函数就没有对象,若父类中显示的有参数的构造函数,在子类继承就必须写一个构造函数来调用父类的构造函 ...

  8. 一种数据与逻辑分离的Python单元测试工具

    一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...

  9. 【JavaScript流程控制语句的用法及练习】

    1.做判断(if语句) if语句是基于条件成立才执行相应代码时使用的语句. 语法:  if(条件){  条件成立时执行代码   } 例子:1.假设你应聘web前端技术开发岗位,如果你会HTML技术,你 ...

  10. cain使用方法

    首先安装cain,这里就不废话了 1, 选择中核弹标志左边的按一下,然后在sniffer右键点击第一个扫描内网所有ip 扫描完后选择网关的IP下面选择arp标志,在按一下上方空格处,+号变得可以使用了 ...