day05.1-文件处理
1. 文件处理流程
- 打开文件,得到文件句柄并赋值给一个变量;
- 通过句柄对文件进行操作;
- 关闭文件
with open("filename","r",encoding="utf-8") as f:
data = f.read()
print(data)
f.close()
2. 文件操作权限(文件操作内容的数据类型必须为字符串型)
- "r":只读
f.read():读取文件所有内容;
f.readline():逐行读取文件内容;
f.readable():判断文件是否可读;
f.readlines():按行读取文件所有内容,以列表形式返回。
- "w":只写(若文件不存在,则在打开操作路径下重新创建空白文件)
f.write("alex\n"):将指定内容写入文件;
f.writelines(["alex\n","bob\n"]):将列表中元素依次写入文件
- "a":追加(追加式写入文件内容)
f.write("alex\n"):将指定内容追加式写入文件末尾
- "r+":读写(既能读取文件内容,又能追加式写入文件内容)
- "rb":字节方式读取文件内容
- "wb":字节方式写入指定文件内容
- "ab":字节方式追加式写入文件内容
3. 其他文件操作方法
- 同时打开多个文件:
with open("XXX","r",encoding="gbk") as src_f,\
open("XXX_new","w",encoding="gbk") as dst_f:
- 对文件进行字节操作时,open()函数不能指定编码方式,即open("文件路径","字节操作权限")。
- Windows中文件换行符为"\r\n",Python会自动将所有换行符转换为"\n",使用语句open("文件路径","操作权限",encoding="编码方式",newling="")禁止该默认转换操作。
- 对字节型变量进行解码:data.decode("utf-8")
- 对字符串变量进行字节编码:bytes(data,encoding="utf-8")或data.encoding("utf-8")。
- 按行循环文件:
"""
#人口信息.txt内容:
{"name":"北京","population":2100000}
{"name":"南京","population":1600000}
{"name":"山东","population":2888888}
{"name":"山西","population":1800000}
""" #bin.py中内容
with open("人口信息.txt","r+",encoding="utf-8") as f:
for item in f:
print(item.strip()) """
运行结果:
{"name":"北京","population":2100000}
{"name":"南京","population":1600000}
{"name":"山东","population":2888888}
{"name":"山西","population":1800000}
"""
- 读取文件最后一行内容:
"""
#人口信息.txt内容:
{"name":"北京","population":2100000}
{"name":"南京","population":1600000}
{"name":"山东","population":2888888}
{"name":"山西","population":1800000}
""" #bin.py中内容
with open("人口信息.txt","r",encoding="utf-8") as f:
data=f.readlines()
print(data[-1].strip())
f.close() """
运行结果:
{"name":"山西","population":1800000}
"""
- 当不知道源文件的具体编码方式时,使用"latin-1"可兼容多种编码方式。
4. 其他文件操作内置函数
- f.closed():查看文件是否关闭;
- f.encoding():查看文件操作的编码方式;
- f.flush():刷新文件内容到硬盘中;
- f.name():查看操作文件的文件名;
- f.tell():光标在文件中所在的位置;
- f.seek(3):将光标移动到指定位置后的第3个字节位置处
模式0:以文件首字节为起点,移动光标,f.seek(3);
模式1:以光标当前位置为起点,移动光标,f.seek(3,1);
模式2:以文件尾字节为起点,移动光标,f.seek(-3,2)。
- f.truncate(10):截取文件中光标位置位于1-10的字节内容。
其中,只有函数f.read(3)表示在光标位置处向后读取3个字符,其余的文件内光标移动操作都是以字节为单位的,包括f.seek()和f.tell。
day05.1-文件处理的更多相关文章
- 复制D:\\day05目录下的所有文件到D:\\copy,并将.txt文件改为.java文件。
**解题思路: 1.首先定义一个静态的refile方法,参数传入两个文件路径 2.要复制目录下的所有文件,首先查询File类的方法,可以使用listFiles方法得到目录下的文件 3.想到这问题基本就 ...
- day05文件编辑命令
day05文件编辑命令 mv命令:移动文件 mv命令:mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中. 格式:mv [原来的文件路径] [现在的文件路径] mv命令后面既可以跟 ...
- Day05 (黑客成长日记) 文件操作系列
文件操作: 1.以什么编码方式输出,就以什么编码方式打开 f = open('d:\文件操作.txt',mode='r',encoding='GB2312') G = f.read() print(G ...
- day05.2-一个文件的增删改查实例
一. 测试程序 #INFO.txt源文件内容 global log 127.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defa ...
- 标C编程笔记day05 函数声明、文件读写、联合类型、枚举类型
函数声明: 1.隐式声明:在没有声明的情况下,系统可依据參数类型推断去调用函数(有可能出错) 2.显式声明:声明在被调用之前.如:double add(double,double); ...
- Day05:集合操作——线性表(二) / 查找表 / 文件操作——File(一)
文件操作:https://www.cnblogs.com/wsnb8/p/11403626.html
- Python学习【day05】- Python文件处理
一.打开文件 对文件的操作主要为三步:1.打开文件,得到文件句柄.2.通过句柄对文件进行操作.3.关闭文件 # 默认打开模式为r,encoding默认为系统文件编码 f=open('F:/Go.txt ...
- day05 创建用户过程、文件夹,文件等权限修改等
linux创建用户时修改到的文件 /etc/passwd //存放用户信息 /etc/shadow //存放用户密码信息 /etc/group //存放用户组信息 /etc/gshadow //存放组 ...
- day05 Servlet 开发和 ServletConfig 与 ServletContext 对象
day05 Servlet 开发和 ServletConfig 与 ServletContext 对象 1. Servlet 开发入门 - hello world 2. Servlet 的调用过程和生 ...
- 老男孩python学习自修【第一天】文件IO用法
第一天 文件IO处理 1.读文件实例 file_split.python f = file('myFile.txt', 'r') for line in f.readlines(): line = ...
随机推荐
- 使用ConfigFilter
ConfigFilter的作用包括: 从配置文件中读取配置 从远程http文件中读取配置 为数据库密码提供加密功能 1 配置ConfigFilter 1.1 配置文件从本地文件系统中读取 <be ...
- C# 调用动态代码
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- C#中打开设计视图时报"未将对象引用设置到对象的实例"
通常情况下,若是你将用户控件写好了放入窗体中,若是有不合理的代码,则会弹出错误提示框,不让你放.若是你之前只是随便加了一个用户控件,并且没有什么问题,但后来你又把控件改坏掉了,那么你打开就会报错(在窗 ...
- python 中类的初始化过程
首先元类中的__new__被调用 所有使用该元类的类都会调用一次,不管其有没有初始化,所以元类__new__的作用是修改/验证类的定义 返回的是一个元类的实例,即一个类的定义 元类的__init__由 ...
- js使用浏览器的另存为下载文件
页面上的页面如下: 我需要根据返回的url下载文件: js: //判断浏览器类型 function myBrowser(){ var userAgent = navigator.userAgent; ...
- 本地yum源构建以及Docker离线安装
Docker离线安装以及本地yum源构建 在docker的使用过程中有时候会遇到一些私有化部署的问题,就是在一些无法上网的机器上面安装使用dokcer,这就引出了docker的离线安装的问题,dock ...
- [C++] Memory_stack_heap
STACK_HEAP_MEMERY_MAP NOTICE: For p1 , where is the address of p1 ?(0x200400) IN STACK For p1 , wher ...
- 高性能python编程之协程(stackless)-乾颐堂
我们都知道并发(不是并行)编程目前有四种方式,多进程,多线程,异步,和协程. 多进程编程在python中有类似C的os.fork,当然还有更高层封装的multiprocessing标准库,在之前写过的 ...
- Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺
更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...
- 用Spring实现文件上传(CommonsMultipartFile)!
2012-02-16 18:10:26| 分类: 计算机--JAVA EE-|字号 订阅 spring中的文件上传实际比较容易1.页面中<html> <body> & ...