文件的操作

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

#  打开文件用到‘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:UsersAdministratorDesktopday5作业参考.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

 print('1
')    #-->1

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

content = f.readlines()

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

5、第五种(最常用)

for l in f:
    print(l.strip())
apple 10 3
tesla 100000 1
mac 3000 2
lenovo 30000 3
chicken 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