能调用方法的一定是对象!

文件的操作分为三步:

1、打开文件

2、操作文件

3、关闭文件

 f= open('小重山','r',encoding='utf8')  #以读的方式打开一个文件,如果文件不存在,则报错
f= open('小重山','w',encoding='utf8') #以写的方式打开一个文件,如果文件不存在,则创建一个,如果文件中有内容,则会将内容格式化掉
f= open('小重山','a',encoding='utf8') #以追加的方式打开一个文件,如果文件不存在,则创建一个
f.write('hello world') #在追加模式下,往文件里面写内容也是用write,而不是append,追加的信息是紧跟在文本后面,没有空格,在w模式下,两个write内容也是紧跟着的
f.read() #读整个文件 f.close()

默认情况下,程序执行完成之后,python解释器会自动关闭文件,也就是说默认执行了f.close,但这种是不安全或都说是不可靠的,所以最好的手动关闭文件。

文件操作方法:

1、read

print(f.read(10))   #括号中的数字表示字符,一个汉字和字母一样,都占一个字符,换行符\n也算一个字符,但在打印的时候不显示出来

显示如下:
昨夜寒蛩不住鸣。
千

2、readline:缺点:只能一行一行打,不能指定多行

print(f.readline())   #打印一行,如果括号中加数字,则表未打印这一行的多少个字符,数字超过当前行所有字符总数时,显示这一行所有内容,换行符\n不显示出来,会执行换行运作
print(f.readline()) #打印下行一内容,说明无论read还是readline,都是从光标之后开始读的 显示如下:
昨夜寒蛩不住鸣。 千里梦,已三更。

3、readlines:缺点:打开的为整个文件,非常占用内存。

print(f.readlines())   #括号里什么不都加,读所有行,注意:返回值是一个列表,且每一行为一个字符串,\n显示,不执行换行运作

显示如下:
['昨夜寒蛩不住鸣。\n', '千里梦,已三更。\n', '起来独自绕阶行。\n', '人悄悄,帘外月胧明。\n', '白首为功名,旧山松竹老,阻归程。\n', '欲将心事付瑶琴。\n', '知音少,弦断有谁听。']

小练习:打印出整首词并在第6行的后面加一句:i like it

number = 0
for i in f.readlines(): #一定要注意,f.readlines()是一个列表,每一行为一个元素
number +=1
if number ==6:
i=''.join([i.strip(),'i like it']) #用中括号括起来的都是列表,join的这个方法就是将列表中的字符串拼接起来
print(i.strip()) #这个代码有一个小优化,就是去掉了一个print,要学会这种思路
f.close()

最有效的打开文件方法:

for i in f:    这是for内部将f对象做成一个迭代器,用一行去一行
print(i.strip())

enumerate()  #后面括号中必须是一个序列

4、tell:告知光标位置

print(f.tell())
print(f.read(2))
print(f.tell()) 显示如下:
0
昨夜
6 #注意:一个中文字符为光标向后挪3个,一个英文字符光标向后挪1个

5、seek:调整光标位置

f.seek(0)   #括号中的数字代表光标要调整到的位置

6、flush:将内存中数据存到硬盘中

进度条:
import sys,time
for i in range(30):
sys.stdout.write('*')
sys.stdout.flush()
time.sleep(0.1) for i in range(30):
print('*',end='',flush=True) #end的用法要记住
time.sleep(0.1)

7、truncate():截断从当前光标起括号中数字起后面的所有字符,如果不加数字,则代表从前当光标位置开始截断,此方法必须要write和append模式下使用。

桃之夭夭,灼灼其华。之子于归,宜其室家。
桃之夭夭,有蕡其实。之子于归,宜其家室。
桃之夭夭,其叶蓁蓁。之子于归,宜其家人。 f.truncate(24) #桃之夭夭,灼灼其 f.seek(24)
f.truncate() #桃之夭夭,灼灼其

文件的打开模式:

r+ :光标是在最前面一个位置,读可以,如果要写的话,只能写在最后,因为读是根据光标的,而写是不管你光标在哪,都是写在最后面

w+ :首先还是先格式化文件,然后写,写过之后光标移到写的内容后面,如果想读,需要调整光标

a+ :以追加方式打开时,光标在最后,所以写的话也是紧跟最后,读的话还是需要调整光标

with语句

为了避免打开文件后忘记关闭,可以通过管理上下文,即:

with open('log','r') as f:  #括号内的两个都要加引号
pass

如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

在python2.7后,with又支持同时对多个文件的上下文进行管理,即,

with open('log1') as obj1,open('log2') as obj2:     #默认情况下,如果不加模式,则文件以read模式打开
pass

别人总结的,先贴着!

f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中 f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符
f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符
f.writelines(['333\n','444\n']) #文件模式
f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式 #了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
f.name

Python:Day08 文件操作的更多相关文章

  1. python day08 文件操作

    2019.4.8 S21 day08笔记总结 一.进制 对于计算机而言无论是文件存储 / 网络传输数据本质上都是:二进制(010101010101),如:电脑上存储视频/图片/文件都是二进制: QQ/ ...

  2. 员工管理系统+字符编码+Python代码文件操作

    员工管理系统+字符编码+Python代码文件操作 1.员工管理系统 1.1  debug 代码调试 1.先使用鼠标左键在需要调试的代码左边点击一下(会出现一个红点)2.之后右键点击debug运行代码 ...

  3. Python :open文件操作,配合read()使用!

    python:open/文件操作 open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) 如何打开文件 handle=open(file_name,a ...

  4. Python 常见文件操作的函数示例(转)

    转自:http://www.cnblogs.com/txw1958/archive/2012/03/08/2385540.html # -*-coding:utf8 -*- ''''' Python常 ...

  5. 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容

     孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...

  6. 孤荷凌寒自学python第三十三天python的文件操作初识

     孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...

  7. python中文件操作的六种模式及对文件某一行进行修改的方法

    一.python中文件操作的六种模式分为:r,w,a,r+,w+,a+ r叫做只读模式,只可以读取,不可以写入 w叫做写入模式,只可以写入,不可以读取 a叫做追加写入模式,只可以在末尾追加内容,不可以 ...

  8. python中文件操作的其他方法

    前面介绍过Python中文件操作的一般方法,包括打开,写入,关闭.本文中介绍下python中关于文件操作的其他比较常用的一些方法. 首先创建一个文件poems: p=open('poems','r', ...

  9. Python常见文件操作的函数示例

    # -*-coding:utf8 -*- ''''' Python常见文件操作示例 os.path 模块中的路径名访问函数 分隔 basename() 去掉目录路径, 返回文件名 dirname() ...

  10. python的文件操作及简单的用例

    一.python的文件操作介绍 1.文件操作函数介绍 open() 打开一个文件 语法:open(file, mode='r', buffering=-1, encoding=None, errors ...

随机推荐

  1. Codeforces442A

    A. Borya and Hanabi time limit per test:2 seconds memory limit per test: 256 megabytes input:standar ...

  2. div添加cursor:pointer;失效问题。

    如果你不小心给其它盒子设置了z-index属性显示在最上层而又没有将该盒子进行隐藏. <style> .bottom { position: absolute; width:100px; ...

  3. angular select2 下拉单选和多选的取值赋值

    官网:http://select2.github.io/examples.html 兼容性: 引入文件 /select2.min.js /select2.min.css html <select ...

  4. Copy Control settings

    Copy Control settings     Skip to end of metadata   Created by Rajesh Banka, last modified by Jyoti ...

  5. 浅谈SnackBar(Toast大兄弟)

    SnackBar是 Android Support Library 22.2.1 里面新增提供的一个控件,我们可以简单的把它理解成一个加强版的Toast,或者是一个轻量级的Dialog. 特点: .S ...

  6. 深入理解Java虚拟机06--虚拟机字节码执行引擎

    一.前言 物理机的执行引擎是直接在物理硬件如CPU.操作系统.指令集上运行的,但是对于虚拟机来讲,他的执行引擎由自己实现. 执行引擎有统一的外观(Java虚拟机规范),不同类型的虚拟机都遵循了这一规范 ...

  7. verilog实现红黄蓝三秒灯

    代码如下 test.v文件 led.v文件 module test(); wire led_r,led_g,led_b; ; clk <= ~clk; led c1 ( .clk(clk), . ...

  8. (后端)springboot 在idea中实现热部署(转)

    自己用到了iIntelliJ IDEA 这个ide工具,但是和以前的工具写html,css,js直接刷新页面不同,这个需要去热部署,网上搜的解决方法: SpringBoot的web项目,在每一次修改了 ...

  9. (网页)jQueryAJAXtimeout超时问题详解(转)

    先给大家分析下超时原因: 1.网络不通畅. 2.后台运行比较慢(服务器第一次运行时,容易出现) 超时结果:JQ中 timeout设置请求超时时间. 如果服务器响应时间超过了 设置的时间,则进入 ERR ...

  10. IT真的是万能的吗?

    朋友最近郁闷了,作为企业信息化主管的他最近经常听到的一句话就是:IT是万能的,不能拒绝用户的任何需求.这句话如果是普通用户私下开玩笑说说也就罢了,但现在演变成了老板在会议场合不止一次这么说,那就让人匪 ...