老齐python-基础7(文件操作、迭代)
在python3中,没有file这个内建类型了(python2中,file是默认类型)
1、读文件
创建文件,130.txt 并在里面输入
learn python http://qiwsir.github.io qiwsir@gmail.com
>>> f = open("130.txt")
>>> dir(f) #查看方法
['_CHUNK_SIZE', '__class__', '__del__', '__delattr__', '__dict__', '__dir__', '__doc__', '__enter__', '__eq__', '__exit__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__lt__', '__ne__', '__new__', '__next__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_checkClosed', '_checkReadable', '_checkSeekable', '_checkWritable', '_finalizing', 'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'writelines']
f = open("./codes/130.txt") #当在上级目录时指定文件 for line in f:print(line)
2、创建文件
>>> nf = open("txtfile.txt","w") #创建txtfile.txt文件 >>> nf.write("This is a new file") #文件中添加一句话,并返回字符串长度 18 >>> nf.close() #关闭打开的文件
只读方式测试
>>> f = open("txtfile.txt") >>> f <_io.TextIOWrapper name='txtfile.txt' mode='r' encoding='UTF-8'> >>> f = open("txtfile.txt","r") >>> f <_io.TextIOWrapper name='txtfile.txt' mode='r' encoding='UTF-8'>
1)w 模式,以写方式打开文件,可向文件写入信息。如果文件存在则清空文件,再写新内容。
2)a 模式,以追加模式打开文件(一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建
也可以用这种模式打开一个不存在的文件,即新建
>>> fn = open("mdfile.md","a") >>> fn <_io.TextIOWrapper name='mdfile.md' mode='a' encoding='UTF-8'> >>> fn.write("python can helo you to be agreat programmer.") 44 >>> fn.close()
3、使用with
在对文件进行写入操作之后,都要执行file.close(),它的作用就是将文件关闭,同事也将内容保存在文件中。
除了显示的操作关闭之外,还有另外一种方法with,更加pythonic
>>> with open("mdfile.md","a") as f: ... f.write("\nI am a Pythoner.") ... 17
4、文件的状态
有时候要获取一个文件的状态(也成为属性),比如创建日期、修改日期、大小等。
>>> import os >>> file_stat = os.stat("mdfile.md") #使用os模块读取文件属性 >>> file_stat os.stat_result(st_mode=33188, st_ino=8672850, st_dev=16777220, st_nlink=1, st_uid=501, st_gid=20, st_size=61, st_atime=1505309783, st_mtime=1505309775, st_ctime=1505309775) >>> file_stat.st_ctime 1505309775.0 >>> import time #使用time模块读取时间 >>> time.localtime(file_stat.st_ctime) time.struct_time(tm_year=2017, tm_mon=9, tm_mday=13, tm_hour=21, tm_min=36, tm_sec=15, tm_wday=2, tm_yday=256, tm_isdst=0)
5、read/readline/readlines
>>> f = open("mdfile.md") >>> f.read(12) #读取前12个字符 'python can h' >>> f.read() #如果不指定就输出到EOF为止(End of file) 'elo you to be agreat programmer.\nI am a Pythoner.' #指针的原因没有读取前部分
readline,逐行读取文件内容
>>> f.readline() #每执行一次读取一行 'python can helo you to be agreat programmer.\n' >>> f.readline() 'I am a Pythoner.' >>> f.readline() ''
readlines,将文件各行读出来,放到一个列表中返回
>>> f = open("mdfile.md")
>>> f.readlines()
['python can helo you to be agreat programmer.\n', 'I am a Pythoner.']
>>> f = open("mdfile.md")
>>> for line in f.readlines(): print(line)
...
python can helo you to be agreat programmer.I am a Pythoner.
>>> f = open("mdfile.md")
>>> for line in f: print(line) #看似相同其实不同,readlines已经在内存中生成列表
...
python can helo you to be agreat programmer.I am a Pythoner.
6、读很大的文件
>>> import fileinput >>> for line in fileinput.input("you.md"): print(line,end='') ... You Raise Me Up When I am down 当我失意低落之时 and, oh my soul, so weary; 我的精神,是那么疲倦不堪 When troubles come 当烦恼困难袭来之际 and my heart burdened be; 我的内心,是那么负担沉重 Then, I am still 然而,我默默的伫立 and wait here in the silence, 静静的等待 Until you come 直到你的来临 and sit awhile with me. 片刻地和我在一起
7、seek
读取文件,指针也随着运动,当读取结束时,这阵就移动了相应的位置。
>>> f = open("you.md") >>> f.readline() 'You Raise Me Up\n' >>> f.readline() 'When I am down 当我失意低落之时\n' >>> f.tell() #查看指针位置 56 >>> f.seek(0) #重置指针位置 0 >>> f.readline() 'You Raise Me Up\n' >>> f.tell() 16 >>> f.readline() 'When I am down 当我失意低落之时\n' >>> f.seek(4) #将指针移动到对应位置 4 >>> f.tell() 4 >>> f.readline() 'Raise Me Up\n'
指针特性:
seek(offset[,whence])是这个函数的完整形式,以上我们省略了whence,在默认情况下都是以文件的开头为参照物进行移动的,即whence=0 whence,还可以有别的值,具体:
1)默认值是0,表示从文件开头开始计算指针偏移的量(简称偏移量)
2)当whence=1,表示从当前位置开始计算偏移量。
3)当whence=2,表示相对文件末尾移动
二、初识迭代
循环(Loop),指的是在满足条件的情况下,重复执行同一段代码,如while语句。
迭代(Iterate),指的是按照某种顺序诸葛访问对象(如列表)中的每一项,如for语句。
递归(Recursion),指的是一个函数不断调用自身的行为,如著名的斐波那契数列。
遍历(Traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。for循环就是一种遍历。
转载于:https://www.cnblogs.com/Taj-Zhang/p/7518056.html
老齐python-基础7(文件操作、迭代)相关推荐
- python基础之文件操作,集合,函数
文件操作: 打开文件的方法: 第一种:打开文件执行完命令后,需要关闭文件,否则会一直占用内存空间 f=open('/data/1.txt','r+') #后面的r+ 表示打开文件的模式是读写 # ...
- python基础之文件操作 内置模块(13)
文件操作: 打开文件,读写文件,操作文件内容 写入文件操作:(把大象装进冰箱) 1.打开文件 open() #1.打开冰箱门 2.向文件中添加内容 write() #2.把大象塞进去 3.关闭文件 c ...
- python文件替换一行_python基础_文件操作实现全文或单行替换的方法
这篇文章主要介绍了关于python基础_文件操作实现全文或单行替换的方法,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 python修改文件时,使用w模式会将原本的文件清空/覆盖.可以 ...
- [Python从零到壹] 三.语法基础之文件操作、CSV文件读写及面向对象
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- python中最基础的文件操作,你都懂吗?
今天讲一下python中的文件操作,虽然在开发中我们很少操作文件,大部分的需求基本上是在数据库中完成,因为数据库的数据更安全,操作效率高,操作文件就面临着我们需要自己管理文件,但是我们平常测试或者做一 ...
- python怎么读取文件-python怎么读写文件操作
本节内容:I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤示例 Python文件读取相关方法 文件读写与字符编码 一.I/O操作概述 I/O在计算机中是指Input/ ...
- 第六篇:python基础之文件处理
第六篇:python基础之文件处理 阅读目录 一.文件处理流程 二.基本操作 2.1 文件操作基本流程初探 2.2 文件编码 2.3 文件打开模式 2.4 文件内置函数flush 2.5 文件内光标移 ...
- Python基础(八)--迭代,生成器,装饰器与元类
目录 Python基础(八)--迭代,生成器,装饰器与元类 1 迭代 1.1 可迭代对象与迭代器 1.2 自定义迭代类型 1.3 迭代合体 2 生成器 2.1 什么是生成器 2.2 生成器表达式 2. ...
- Python os模块文件操作(二)
Python os模块文件操作(二) os模块对文件夹和文件的操作很多.可以先看: https://blog.csdn.net/weixin_43790276/article/details/9867 ...
最新文章
- 剑指offer_第14题_链表中倒数第k个结点_Python
- Leetcode 141.环形链表
- 【linux】11_存储管理文件链接
- char类型的实参与const char类型的形参不兼容_C++干货系列——顶层const和底层const...
- VTK:Picking之HighlightPickedAct
- 玩转Google开源C++单元测试框架Google Test系列(gtest)之八 - 打造自己的单元测试框架
- Leetcode--198. 打家劫舍
- 通知中心 NSNotificationCenter 的简单使用方法
- Bootstrap3 插件的版本号
- 用ipad同步mac的屏幕
- 《消息队列》函数讲解
- python3 format函数_【Python3 第三日】%和format格式化输出 函数
- 高度焦虑、凌晨出没、空中飞人,这些竟是 IT 大佬的日常!
- 静态GPS控制测量使用技术方法
- mysql查询同时选修了两门_查找同时选修了C01及C02两门课程的学生姓名及学号
- PPT转图片(Java)
- 固态硬盘误格式化恢复图文教程
- 直播换脸后,我们来搞搞微信QQ聊天换脸!| avatarify
- WEB端显示三维地形模型
- 抖音seo源码,抖音矩阵,抖音seo系统,抖音搜索排名