文件基本操作

 # 打开文件
f = open("小重山","r",encoding="utf-8")
 # readline 方法 只查看一行
a = f.readline()
print(a)
print(f.readline()) # 打印的时候会打印出来每行的最后的换行符
 #readlines 方法 查看全部行 可for循环进行遍历 并对每一行进行特殊操作比如加点东西去空格之类的
print(f.readlines())
 #关闭文件
f.close()

文件打开方式

  文件的模式:r , w , a ,默认打开文件就是只读模式。
 f = open("陈粒","r",encoding="utf-8")     # open 会检查系统的编码,然后用系统的编码方式去检索句柄来打开文件
# data = f.read() # 获取读取内容
# print(data)
print(f.readable()) # 判断是否可读
print("第一行",f.readline(),end="") # 按行读,格式就是 .readline() 无参数可以加。就是度一行
print("第二行",f.readline(),end="") # 读取的时候是按照光标位置读
print("第三行",f.readline(),end="")
print("第四行",f.readline(),end="")
print("第五行",f.readline(),end="")
print("第六行",f.readline(),end="")
f.close() # 一直不关会占用操作系统的资源无法释放
 # w,写模式,不论是否存在只要写就会清除内容然后重建相同名字的文件
f = open("陈粒","w",encoding="utf-8")
# f.read() # 写模式是不可读的
f.write("1111111\n")
f.write("222222222\n")
# f.write(123) # 写的时候必须写的是字符串,其他会报错
f.writable() # 判断是否可写
f.writelines(["456\n","86\n","5\n"]) # 写入列表
f.close()
 # r+ 读写模式
f = open("陈粒1","r+",encoding="utf-8")
f.write("写在文件最后")
f.close()

光标的操作

 # 查看当前的光标位置
print(f.tell())
print(f.read(2))
print(f.tell()) # 调整光标位置
f.seek(0)
print(f.tell())
 f = open("seek.txt","rb")
print(f.tell())
f.seek(10)
f.seek(10,0) # 默认的工作模式就是 0 ,绝对位置,从头开始移动
f.seek(10,1) # 工作模式为 1 ,相对位置,从当前的光标位置才移动
print(f.tell())
f.seek(-3,1) # - 可以像左移动
print(f.tell())
f.seek(-3,2) # 工作模式为 2 ,从末尾开始倒着读,倒着必须要用负数想做移动
# 已经最末尾了,怎么再向右移动?石乐志
# 日志文件的最后追加是很多的,这个命令查询日志很好用。
print(f.tell())

创建进度条

 # 进度条的创建
import sys,time
for i in range(30):
sys.stdout.write("*")
sys.stdout.flush()
time.sleep(0.1)

文件修改

 # 文件修改
src_f = open("xxx","r",encoding="utf-8")
data = src_f.readlines()
src_f.close()
print(data)
drc_f = open("xxx","w",encoding="utf-8")
# drc_f.writelines(data)
drc_f.write(data[0])
drc_f.close()
 # 完成文件修改的更高端的操作
with open("xxx","r",encoding="utf-8") as src_f,\
open("xxx_new","w",encoding="utf-8") as dst_f:
data = src_f.read()
dst_f.write(data)
 # 不在需close ,with open as 方法
with open("a.txt","w")as f:
f.write("yangtuo\n")

其他整合操作

 f = open("a.txt","w",encoding="utf-8",newline="")     # 默认的编码方式为系统的方式,
# newline读取转换方式 ,windows的回车是\r\n ,如果默认的话,会按照\r\n 记录,这样可以将回车只用\n print(f.closed) # 查看文件是否关闭,false 表示未关闭 print(f.encoding) # 查看文件打开的编码方式,而不是文件本身的编码方式 f.flush() # 即时的刷新,系统会自动保存但是有延时,手动刷新 print(f.read(7)) # 读文件,从当前光标位置按照字符数量来读,
# 除了read是按字符,其他都是按字节 print(f.readline()) # 按行读,只读一行 print(f.readlines()) # 按行读且将读取的内容放在列表里面 f.tell() # 显示目前的光标位置 f.seek(5) # 移动光标位置,数字表示字节数,不是按照字符数
# 比如一个汉字三个字节。你只读一个字节。这个汉字是无法显示的,
# utf-8的汉字是三个字节为单位存储 f.truncate(10) # 从头开始截取到第10个字节,其他都丢了
# 不可以用w w+ 的方式打开啊。用w打开文件内容会清空你还截取个p f.close() # 关闭文件

查看大文件最后一行的常用方法,通常用于日志文件的查询
 # 如何查看文件的最后一行,使用了seek的玩法
# 循环文件的方式,一行一行的
for i in f:
offs = -10 # 定义一个偏移量
while True: # 定义一个死循环
f.seek(offs,2) # 将光标移动到文章末尾向前偏移量大小的位置
data = f.readlines() # 保存然后读出来光标往后的内容列表保存起来
# 其实就是你偏移量的内容
if len(data) >1 : # 如果列表长度超过 1 ,表示已经读取到了最后一行,直接打印就可以了。
# 如果列表长度没超过 1 ,表示没读完最后一行,再循环读几次偏移量大小。
print("文件的最后一行是%s" %(data[-1].decode("utf-8")))
break
offs *= 2

day8 文件操作的更多相关文章

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

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

  2. python 全栈开发,Day8(文件操作)

    一.文件操作流程 文件以什么编码存储的,就以什么编码打开 参数: 1.文件路径 2.编码方式,encode 3.执行动作(打开方式):只读,只写,追加,读写,写读... 打开一个已经存在的文件 f = ...

  3. day8文件操作作业详解

    1.day8题目 1,有如下文件,a1.txt,里面的内容为: 老男孩是最好的培训机构, 全心全意为学生服务, 只为学生未来,不为牟利. 我说的都是真的.哈哈 分别完成以下的功能: a,将原文件全部读 ...

  4. DAY8 文件操作(二)

    一.写 1.1写文件 # w:没有文件新建文件,有文件就清空文件 w = open('1.txt', 'w', encoding='utf-8') w.write('000\n') # 在写入大量数据 ...

  5. pytthon—day8 读写模式的结合、文件操作模式、with完成文本文件复制、游标操作

    一.读写模式的结合 w:写指没有新建文件,有文件就清空 w=open('1.txt','w',encoding='utf-8') w.write('000\n') 在写入数据时,需要及时处理内存空间, ...

  6. python学习Day8 三种字符类型、文件操作

    复习 类型转换 1.数字类型:int() | bool() | float() 2.str与int:int('10') | int('-10') | int('0') | float('-.5') | ...

  7. day8.python文件操作

    打开和关闭文件 open函数 用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file = open(file_name [, access_ ...

  8. day8 八、文件操作模式、文件的复制与文件游标操作

    一.文件操作 1.wr模式结合 ① w = open('1.txt', 'w', encoding='utf-8') # w:没有文件新建文件,有文件就清空文件 w.write('000\n') w. ...

  9. 文件操作 day8

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

随机推荐

  1. FileShare枚举的使用(文件读写锁) - (转载)

    开发过程中,我们往往需要大量与文件交互,但往往会出现很多令人措手不及的意外,所以对普通的C#文件操作做了一次总结,问题大部分如下: 写入一些内容到某个文件中,在另一个进程/线程/后续操作中要读取文件内 ...

  2. BusyBox下tftp命令的使用

    一.简介 BusyBox下的tftp是一款应用于嵌入式开发系统上的一款小巧tftp工具,为开发者提供一个tftp服务的使用平台. 通常是,PC开发主机作为服务器(Server),开发系统(板)作为客户 ...

  3. 案例学python——案例三:豆瓣电影信息入库

    闲扯皮 昨晚给高中的妹妹微信讲题,函数题,小姑娘都十二点了还迷迷糊糊.今天凌晨三点多,被连续的警报声给惊醒了,以为上海拉了防空警报,难不成地震,空袭?难道是楼下那个车主车子被堵了,长按喇叭?开窗看看, ...

  4. awk技巧(如取某一行数据中的倒数第N列等)

    使用awk取某一行数据中的倒数第N列:$(NF-(n-1))比如取/etc/passwd文件中的第2列.倒数第1.倒数第2.倒数第4列(以冒号为分隔符) [root@ipsan-node06 ~]# ...

  5. centos6下redis cluster集群部署过程

    一般来说,redis主从和mysql主从目的差不多,但redis主从配置很简单,主要在从节点配置文件指定主节点ip和端口,比如:slaveof 192.168.10.10 6379,然后启动主从,主从 ...

  6. 最好使用%f输出浮点数据,acm

    今天做题的时候发现使用%lf输出的时候总是wrong,而一旦改成%f就ac了,询问学长后知道,不要用%lf输出,浮点都用%f 然而我还是有疑惑,如果%f容不下输出的数据怎么办呢? 于是我就去百度 原来 ...

  7. 12.12 Daily Scrum

    这周末我们会集成一下反馈活跃用户的模块. 另外,今天编译的第一次测试结束,周末这两天项目的进度会比之前加快一些.   Today's Task Tomorrow's Task 丁辛 实现和菜谱相关的餐 ...

  8. Linux内核分析 笔记七 可执行程序的装载 ——by王玥

    一.预处理.编译.链接和目标文件的格式 (一)可执行程序是怎么得来的? 1. 2.可执行文件的创建——预处理.编译和链接 shiyanlou:~/ $ cd Code                  ...

  9. Atcoder C - Vacation ( DP )

    C - Vacation Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement Taro' ...

  10. mysql外键关联

    主键:是唯一标识一条记录,不能有重复的,不允许为空,用来保证数据完整性 外键:是另一表的主键, 外键可以有重复的, 可以是空值,用来和其他表建立联系用的.所以说,如果谈到了外键,一定是至少涉及到两张表 ...