文件操作

文件操作的顺序:

1.先设置文件路径:   d:\老师.txt   #设置一个文件保存到D盘里。

2.编码方式:  utf-8     gbk……

3.操作方式:只读r,只写w,追加a,读写r+,写读w+,追加读a+……文件操作最好只用r,w,a因为如果用读写之类的会造成光标错乱,形成乱码。

f = open('d:\老师.txt',mode='r',encoding='utf-8')
content = f.read()
print(content)
f.close()

以什么方式编码方式储存的文件,就以什么编码方式打开进行操作。

如果在pycharm中写,可以去掉文件位置和文件后缀名。

3.1只读 r (非文字文件,还有上传和下载。)

 

r  #只读          #用pycharm来编写,设置一个log文件,文件为只读文件,用utf-8来编写的
f = open('log',mode='r',encoding='utf-8')  
content = f.read()
print(content)
f.close()    
rb  #为只读(rb是bytes类型)        
f = open('log',mode='rb')  
content = f.read()
print(content)
f.close()   

3.2只写 w  (先将源文件的内容全部删除,然后在写。)

w   #只写文件
f = open('log',mode='r',encoding='utf-8')  
f.write('sole')
f.close()
wb     #只写的bytes类型,    str转换bytes类型需要用encode,而不用encoding。
f = open('log',mode='r') 
f.write('sole'.encode('utf-8'))
f.close()

3.3追加 a (在文件内容的后面,追加字符。)

a   #追加文件
f = open('log',mode='a',encoding='utf-8')  
f.write('memory')
f.close()
ab #追加的bytes类型
f = open('log',mode='ab')  
f.write('memory'.encode('utf-8'))
f.close()

3.4 读写(可以先读后写)r+

r+
f = open('log',mode='r+',encoding='utf-8')  
print(f.read())
f.write('熊猫,猫熊')  #写多少占多少位,如果文件内容读取的内容剩下就继续读出。
f.close()
r+b
f = open('log',mode='r+b'  
print(f.read())
f.write('熊猫,猫熊'.encode('utf-8')) 
f.close()

3.5写读  w+ (先写后读)

w+
f = open('log',mode='w+',encoding='utf-8')  
f.write('aaaa')
f.seek(0)
print(f.read())
f.close()
w+b
f = open('log',mode='w+b')  
f.write('aaaa'.encoude('utf-8'))
f.seek(0)
print(f.read())
f.close()

3.6追加a+

a+
f = open('log',mode='a+',encoding='utf-8')
f.write('aaaa')
print(f.read(2))
f.close()

3.7其他操作

f = open('log',mode='r+',encoding='utf-8')
#content = f.read(3)(读出来的都是    字符)
f.tell()     # 断点续传告诉你光标的位置
f.seek(3)    #(seek用字节定光标的位置)光标---文件指针
content = f.read()
print(content)
f.close()
f.readable()#是否可读
f.readline()#一行一行的读
f.readlines()#每一行当成列表中的一个元素,添加到列表中
f.truncate(5) #源文件截取
for line in f:    #for循环,查找文件内容里面所有,最好用for循环
    print(line)
with open('log',mode='r+',encoding='utf-8') as obj :
        print(obj.rand())  #上述必须加close比较麻烦,所以用with open as obj

 3.8删除和修改文件

with open('log',encoding='utf-8') as f,open('log.bak','w',encoding='utf-8') as f2:
    for line in f:
        if 'sole' in line:
            line = line.replace('sole','panda')
        f2.write(line)  #写文件
import os
os.remove('log')   #删除文件
os.rename('log.bak','log')    #重命名文件

 

4.什么是绝对路径和相对路径


绝对路径是文件直接存储在计算机的硬盘里,比如直接存储在C盘里、D盘里或是E盘里;

相对路径是文件没有直接存储在计算机的硬盘里,比如存储在C盘里的一个文件夹中等。 
posted on 2017-12-25 20:20  Kindergarten_Panda  阅读(291)  评论(0编辑  收藏  举报