python学习笔记三 文件操作(基础篇)
文件操作
打开文件
#写入字符串列表(实际上任何序列和可迭代的对象都行),它会把所有的字符串写入文件。
f = open('test2.txt','w')
f.write('')
f.seek()
f.write('hello, world!')
f.close()
f = open('test2.txt','r')
line = f.read()
print(line)
f.close()
01234hello, world!89
truncate #截断数据,仅保留指定之前数据
f = open('test2.txt')
f.seek(4)
f.truncate() #截断f.seek(4)以后的所有数据,仅保留之前的。
f.close()
tell返回当前文件的位置
f = open('test2.txt')
f.read()
f.read()
print(f.tell())
f.close()
5
#假设文件中包含中文
f = open('test2.txt','r',encoding='utf-8')
a = f.seek(2) #文件报错,因为一个汉字占3个字节,seek是按照字节位移
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position 0: invalid start byte
b = f.read(2) #读取字符,(在以前版本中一个汉字占3个字节,单读取2个字节将会出现乱码)
print(a)
c = f.tell() #返回值还是按照字节来的。
print(b)
好0
4
#Once your file here
try:
#Write data to your file
finally:
file.close()
迭代文件内容和文件对象
read(),readline(),readlines()前面都已经提到过,下面介绍另一种方法fileinput
在对一个比较大的文件进行迭代行的操作时,readlines()会占用大量的内存,既可以使用while循环和readline,还可以使用for循环来实现行的迭代。
import fileinput
for line in fileinput.input(filename): #便于遍历多个输入流中的行。
print(line)
fileinput模块中的函数
input(files[,inplace[,backup]]) #便于遍历多个输入流中的行
filename() #返回当前文件的名称
lineno() #返回当前(累计)的行数
filelineno() #返回当前文件的行数
isfirst() #检查当前行是否是文件的第一行
isstding() #检查当前最后一行是否来自sys.stdin
nextfile() #关闭当前文件,移动到下一个文件
close() #关闭序列
文件迭代器
f = open(filename)
for i in f:
print(i)
f.close()
可以对文件迭代器执行和普通迭代器相同的操作,比如将它们转换为字符串列表(list(open(filename))),这样所达到的效果和readlines一样。
f = open('log.txt','w')
f.write('aaa\n')
f.write('bbb\n')
f.write('ccc\n')
f.write('ddd\n')
f.close()
lines = list(open('log.txt'))
print(lines)
['aaa\n', 'bbb\n', 'ccc\n', 'ddd\n']
python学习笔记三 文件操作(基础篇)的更多相关文章
- python学习笔记(三):文件操作和集合
对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...
- python学习笔记三 函数(基础篇)
函数 内置函数 常用的内建函数: type() 列出指定对象的类型 help() 能够提供详细的帮助信息 dir() 将对象的所有特性列出 vars() 列出当前模块的所有变量 file, ...
- python学习笔记之文件操作(三)
这篇博客小波主要介绍一下python对文件的操作 对文件的操作主要分为三步: 1.打开文件获取文件的句柄,句柄也是文件描述符 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件,是小波随写的周杰伦 ...
- Python学习笔记 - day5 - 文件操作
Python文件操作 读写文件是最常见的IO操作,在磁盘上读写文件的功能都是由操作系统提供的,操作系统不允许普通的程序直接操作磁盘(大部分程序都需要间接的通过操作系统来完成对硬件的操作),所以,读写文 ...
- python学习笔记:文件操作和集合
一.文件操作 文件读写步骤:有一个文件,打开文件,操作文件读写文件,关闭文件. python 文件读写模式r,r+,w,w+,a,a+的区别(附代码示例) 模式 可做操作 若文件不存在 是否覆盖 r ...
- python学习笔记4(文件操作)
文件操作: 1.f=open(”caidan”,”w”,encoding=”utf8”) 直接打开一个文件,如果文件不存在则创建文件 f.close() 2.with open (”caid ...
- python学习笔记(六)---文件操作与异常处理机制
文件读取 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创建一个文件,它包含精确到小数点后30位的圆周率值,且在小数点后每10位处都换行: pi_digits.txt 3.14159 ...
- 我的Python学习笔记之文件操作
一,Python的文件类型有两种 1.文本文件 2.二进制文件 文件的操作: 1.打开文件,获取文件的控制权 2.读写文件 3.关闭文件,释放文件的控制权,如果不释放控制权,那么其他程序就不能访问此文 ...
- python学习笔记二 数据类型(基础篇)
Python基础 对于Python,一切事物都是对象,对象基于类创建 不同类型的类可以创造出字符串,数字,列表这样的对象,比如"koka".24.['北京', '上 ...
随机推荐
- [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Ejb: remote调用
用的是wildfly 9.0.2 一:在myeclipse中新建wildfly 9.0.2的server(如何新建去网上搜) 二:修改wildfly server的argument(在run conf ...
- windows namedPipe 命名管道clent and server
1.client: #include "iostream" #include "windows.h" using namespace std; void mai ...
- java经典小算法
package com.shb.java; public class Demo4 { /**时间有限 先不写文字了 自己随便敲的 * @param args * @author shaobn */ p ...
- 导出Excel offer2007以上
package cn.knet.data.untils; import java.awt.Color; import java.io.File; import java.io.FileOutputSt ...
- struts2拦截器の简单实现(日语系统,请忽略乱码,重在实现)
1.创建类实现interceptor接口或者继承abstractinter~~~类 package com.mi.intercepter; import java.util.Date; import ...
- POJ - 2041Unreliable Message
这里的算法非常简单,就是“模拟”,注意编写每个传令官的算法时先分开测试,放在一起就会混淆. POJ - 2041Unreliable Message Time Limit: 1000MS Memory ...
- python实现指定目录下批量文件的单词计数:串行版本
直接上代码. 练习目标: 1. 使用 Python 面向对象的方法封装逻辑和表达 : 2. 使用异常处理和日志API : 3. 使用文件目录读写API : 4. 使用 list, map, t ...
- Android NDK 开发(四)java传递数据到C【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41845701 前面几篇文章介绍了Android NDK开发的简单概念.常见错误及处 ...
- JSP中文乱码问题解决方法小结
在使用JSP的过程中,最使人头疼的一个问题就是中文乱码问题,以下是我在软件开发中遇到的乱 码问题以及解决方法. 1.JSP页面乱码 这种乱码的原因是应为没有在页面里指定使用的字符集编码,解决方法:只要 ...