博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
文件的操作
阅读量:6374 次
发布时间:2019-06-23

本文共 2138 字,大约阅读时间需要 7 分钟。

#  只要牵扯到文件的操作,都是字符串

#  打开文件用到‘w’,源文件内容会被清空(相当于新建)

#  sprip()  取消换行符

#  换行符2个字节

一、打开  (win    gbk     mac/Linux    utf-8)

f = open('歌词')    

# f:文件操作符    文件句柄   文件操作对象

#  习惯叫 f   file   f_obj  f_handler  fh

#  print(f.wriable())  判断文件是否可写

#  print(f.readable())  判断文件是否可读

f.write('552716')    # 写文件的时候需要写到数字,需要把数字转换成字符串

#  open 打开文件是依赖了操作系统提供的途径

# 操作系统有自己的编码,open在打开文件的时候默认使用操作系统的编码

 

找到文件

#找到文件详解:文件与py的执行文件在相同路径下,直接用文件名字就可以打开

      #:文件与py的执行文件在不同路径下,用绝对路径找到文件

#文件的路径,需要用取消转译的方式来表示:1、\\     2、r‘’

#如果以写文件的方式打开一个文件,那么不存在的文件会被创建,存在的文件之前的内容会被清空

 

f = open(r'C:\Users\Administrator\Desktop\day5作业参考.txt','w',encoding='utf-8')f.write('啦啦啦')f.close()

 

关闭文件

#操作系统级别的关闭文件资源: f.close()      必须写

#del f   主动释放了一个python程序内存中的变量    可写可不写

 

二、读文件(默认了读模式)

1、读文件的第一种方式(读全部)

#打开文件

# f = open(‘歌词’,‘r’,encoding='utf-8')

f = open('歌词',encoding= 'utf-8')

1、读文件的第一种方式:read方法,用read方法会一次性的读出文件中的所以有内容

conten = f.read()

print(content)

f.close()

2、读一部分内容

#读一部分内容:read(n),指定读n个单位

print(f.read(5))

3、第三种方式:按照行读

  每次执行readline就会往下读一行

content = f.readline()print(content.strip())     # strip 去掉空格、制表符、换行符#print(1)    #-->1\n print('1\n')    #-->1\n\n

4、第四种:readlines(读所有行)

content = f.readlines()

print(content)  # ['apple 10 3\n', 'tesla 100000 1\n', 'mac 3000 2\n', 'lenovo 30000 3\n', 'chicken 10 3\n']

5、第五种(最常用)

for l in f:    print(l.strip())apple 10 3tesla 100000 1mac 3000 2lenovo 30000 3chicken 10 3

三、rb

'rb'
#1. 打开文件的模式有(默认为文本模式):
r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
w,只写模式【不可读;不存在则创建;存在则清空内容】
a, 之追加写模式【不可读;不存在则创建;存在则只追加内容】
 
#2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格
注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码
 
 
'rb'
b:图片、视频
传输:上传,下载
a、追写
 
四、‘+’
#r+   可读可写:
  #1、先读后写:写是追写
  #2、先写后读:从头开始写
 
w+  可写可读
  seek:光标的移动

###  一般情况下:文件操作,要么读,要么写,很少会用到读写、写读同时用的

    常用的:

    r、w、a

    rb、wb、ab。不需要指定编码了

五、光标的移动

1、read

  1. 文件打开方式为文本模式时,代表读取3个字符

  2. 文件打开方式为b模式时,代表读取3个字节

2、其余的文件内光标移动都是以字节为单位如seek,tell,truncate

注意:

  1. seek有三种移动方式0,1,2,其中1和2必须在b模式下进行,但无论哪种模式,都是以bytes为单位移动的

f.seek(0)   移动到最开始

f.seek(0,2)移动到末尾

  2. truncate是截断文件,所以文件的打开方式必须可写,但是不能用w或w+等方式打开,因为那样直接清空文件了,所以truncate要在r+或a或a+等模式下测试效果

 

    

转载于:https://www.cnblogs.com/jassin-du/p/7754542.html

你可能感兴趣的文章
小程序中使用箭头函数的问题
查看>>
走进 JDK 之 Long
查看>>
Android打地鼠游戏的修改和优化
查看>>
Java异常
查看>>
map、reduce、filter、for...of、for...in等总结
查看>>
html2canvas-实现页面截图
查看>>
入门 | 从文本处理到自动驾驶:机器学习最常用的50大免费数据集
查看>>
笔记-从源码角度分析alloc与init的底层
查看>>
消除GitHub上的历史记录
查看>>
自学 JAVA 的几点建议
查看>>
第十三天-企业应用架构模式-对象-关系元数据映射模式
查看>>
k8s与HPA--通过 Prometheus adaptor 来自定义监控指标
查看>>
虎牙直播在微服务改造方面的实践和总结
查看>>
怎样将优酷网站下载的视频KUX转MP4格式
查看>>
MongoDB 分组统计
查看>>
二进制状态码
查看>>
Vue 中 CSS 动画原理
查看>>
关于 Promise 的 9 个提示
查看>>
算法复习
查看>>
安卓中高级开发面试知识点之——缓存
查看>>