一、文件操作

  1、文件操作:数据持久化的一种

       步骤:找到文件,打开文件,操作:读、写、追写,关闭文件

       打开文件:f = open(文件路径,操作模式,编码方式),f:文件句柄、文件操作符、文件操作对象,f 习惯叫 file、f_obj、f_handler、fh,操作模式默认为读

              open打开文件是依赖了操作系统提供的途径,操作系统有自己的编码,open在打开的时候默认使用操作系统的编码方式

       文件路径:文件和py的执行文件在相同路径下,直接用文件的名字就可以打开文件

            文件和py的执行文件不在相同路径下,用绝对路径打开文件文件的绝对路径,需要以取消转义的方式来表示:1.\\  2.r''

       如果以写的方式打开一个文件,那么不存在的文件会被创建,存在的文件内容会被清空

       关闭文件:f.close(),必须写,del f 主动释放内存中的一个变量,可写可不写

f = open('练习','w',encoding='utf-8')  #w:打开并清空文件
print(f.readable()) #判断文件是否可读
print(f.writable()) #判断文件是否可写
f.write('') #写文件的时候需要写数字,需要把数字转换成字符串
f.write('学而时习之')
f.close() #关闭文件
f = open(r'C:\Users\Administrator\Desktop\case.txt',,encoding='utf-8')  #绝对路径,模式为只读
print(f.readline().strip()) #按行读,只读一行,strip清除换行符
print(f.readlines()) #把每行的内容变成字符串存在一个列表里

  2、文件的读:read,'r'

     读文件的方式:第一种:read,一次性读出文件的所有内容,占用内存大

            第二种:read(n),指定读n个字符

            第三种:按照行读,readline(),每次执行readline就会往下读一行,strip去掉空格、制表符、换行符

            第四种:readlines,返回一个列表,将文件中的每一行作为列表中的每一项返回一个列表

            第五种:最常用,for循环,for l in f:print(l.strip())

f = open('练习',encoding='utf-8')
print(f.read())
print(f.read(5))
print(f.readline().strip())
print(f.readlines())
f.close() f = open('练习',encoding='utf-8')
for l in f:
print(l.strip())
f.close()

  3、读文件并整理成需要的数据类型

f = open('case',encoding='utf-8')
lis = []
for line in f:
if line.strip(): #判断是否为空行
dic = {}
line = line.strip()
li = line.split()
dic['name'] = li[0]
dic['price'] = int(li[1])
lis.append(dic)
print(lis)
f.close()

  4、文件的打开模式

Character Meaning
‘r' open for reading (default)
‘w' open for writing, truncating the file first
‘a' open for writing, appending to the end of the file if it exists
‘b' binary mode
‘t' text mode (default)
‘+' open a disk file for updating (reading and writing)
‘U' universal newline mode (for backwards compatibility; should not be used in new code)

        打开文件的模式有:1、(默认为文本模式):r,只读模式【默认模式,文件必须存在,不存在则抛出异常】

                                                                          w,只写模式【不可读;不存在则创建;存在则清空内容】

                              a,追加写模式【不可读;不存在则创建;存在则只追加内容】

             2、对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作,注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

             3、"+" 表示可以同时读写某个文件

# r+  可读可写:
#1.先读后写:写是追写
#2.先写后读:从头开始写 # w+ 可写可读:一上来文件就清空了
# 尽管可读:1.但是你读出来的内容是你这次打开文件新写入的
# 2.光标在最后,需要主动移动光标才可读 # a+ 追加可读 #一般情况下:文件操作,要么读,要么写,很少会用到读写、写读同时用的
#常用的:
#r、w、a,需要指定编码
#rb、wb、ab,不需要指定编码了

  5、文件内的光标移动

    read(5):文件打开方式为文本模式时,代表读取3个字符

            文件打开方式为b模式时,代表读取3个字节

    其余的文件内光标移动都是以字节为单位如seek,tell,truncate

#seek()  光标移动到第几个字节的位置
# f.seek(0) 移动到最开始
# f.seek(0,2) 移动到最末尾
#tell() 告诉当前光标在第几个字节
#truncate() 从文件开始的位置只保留指定字节的内容

  6、文件的修改:打开旧文件, 把旧文件的内容读出来,创建一个新文件,把旧文件读出来的内容修改后写入新文件,把旧文件删除,再把新文件重命名成旧文件的名字

#第一种方法:
f1 = open('old_file',encoding='utf-8')
f2 = open('new_file','w',encoding='utf-8')
for line in f1:
line = line.replace('old','new')
f2.write(line)
f1.close()
f2.close()
import os
os.remove('old_file')
os.rename('new_file','old_file')
#第二种方法:
with open('old_file',encoding='utf-8') as f1,open('new_file','w',encoding='utf-8') as f2: #用with打开文件不用close
for line in f1:
line = line.replace('old','new')
f2.write(line)
import os
os.remove('old_file') #删除old_file
os.rename('new_file','old_file') #new_file重命名

  7、文件的删除

import os  #导入os模块
os.remove('file') #删除文件

Python学习(五) —— 文件操作的更多相关文章

  1. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  2. python学习日记(文件操作)

    文件操作概述 计算机系统分为:操作系统,计算机硬件,应用程序. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用程序 ...

  3. python学习总结---文件操作

    # 文件操作 ### 目录管理(os) - 示例 ```python # 执行系统命令 # 清屏 # os.system('cls') # 调出计算器 # os.system('calc') # 查看 ...

  4. 03 python学习笔记-文件操作(三)

    本文内容主要包括以下方面: 1. 文件操作基本认识2. 只读(r, rb)3. 只写(w, wb)4. 追加(a, ab)5. r+读写6. w+写读7. a+写读(追加写读)8. 文件的修改 一.文 ...

  5. python学习day8 文件操作(深度学习)

    文件操作 (day7内容扩展) 1 文件基本操作 obj = open('路径',mode='模式',encoding='编码')obj.write()obj.read()obj.close() 2 ...

  6. python 学习分享-文件操作篇

    文件操作 f_open=open('*.txt','r')#以只读的方式(r)打开*.txt文件(需要与py文件在同一目录下,如果不同目录,需写全路径) f_open.close()#关闭文件 打开文 ...

  7. Python学习笔记——文件操作

    python中,一切皆对象.   一.文件操作流程 (1)打开文件,得到一个文件句柄(对象),赋给一个对象: (2)通过文件句柄对文件进行操作: (3)关闭文件. 文件对象f通过open()函数来创建 ...

  8. Python学习之==>文件操作

    1.打开文件的模式 r,只读模式(默认)[不可写:文件不存在,会报错] w,只写模式[不可读:不存在则创建:存在则删除内容] a,追加模式[不可读:不存在则创建:存在则追加内容] r+,读写模式[可读 ...

  9. Python学习之文件操作

    Python 文件打开方式 文件打开方法:open(name[,mode[buf]]) name:文件路径mode:打开方式buf:缓冲buffering大小 f = open('test.txt', ...

  10. Python学习 :文件操作

    文件基本操作流程: 一. 创建文件对象 二. 调用文件方法进行操作 三. 关闭文件(注意:只有在关闭文件后,才会写入数据) fh = open('李白诗句','w',encoding='utf-8') ...

随机推荐

  1. FTP登录提示Can't open data connection for transfer of "/"

    服务器: 系统:windows server 2008 R2 standard 是否开启防火墙:是 FTP客户端:Filezilla server 本地: FTP服务端:winscp 使用winscp ...

  2. ebs 12.1.1升级到12.1.3

    升级过程参考 Oracle电子商务套件版本12.1.3自述文件 (文档 ID 1534411.1) 应用启动到维护模式 adadmin 打以下patch 9239089  9239090  92390 ...

  3. VI和VIM

    linux下vi.VIM命令大全   进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + file ...

  4. Laravel 5.2--改变数据库字段值,编辑时候,默认选中

    模型 <?php namespace App\Models; use App\Helpers\ImageHelper; use App\Libraries\Nestedset\NodeTrait ...

  5. 反转链表算法Java实现

    之前遇到反转链表的算法,比较晦涩难解,但其实挺简单的. 目标:将一个顺序链表反转. 思路:用三个辅助节点,每次实现一个节点的指向反转,即他的后继变为他的前驱. 三个辅助节点: p  q  r  按顺序 ...

  6. 基础常用的数据结构 Collection Map

    map是键值对的集合接口,它的实现类主要包括:HashMap,TreeMap,Hashtable以及LinkedHashMap等.其中这四者的区别如下(简单介绍): HashMap:我们最常用的Map ...

  7. 高性能MySQL(第3版) 中文PDF带目录清晰版

    下载地址: <高性能MySQL(第3版)>编辑推荐:"只要你不敢以MySQL专家自诩,又岂敢错过这本神书?""一言以蔽之,写得好,编排得好,需要参考时容易到爆 ...

  8. Confluence 6 手动备份站点

    Confluence 被配置自动备份数据,使用压缩的 XML 格式.同时你也可以通过 Confluence 的 管理员控制台(Administration Console)手动进行备份. 你需要具有 ...

  9. Confluence 6 在数据源连接中启用校验查询

    确定 Confluence 在数据库连接池中校验数据库连接: 停止 Confluence. 编辑 <installation-directory>/conf/server.xml 文件(或 ...

  10. mvc 模式和mtc 模式的区别

    首先说说Web服务器开发领域里著名的MVC模式,所谓MVC就是把Web应用分为模型(M),控制器(C)和视图(V)三层,他们之间以一种插件式的.松耦合的方式连接在一起,模型负责业务对象与数据库的映射( ...