python学习第八天,,文件操作,切片相当于浅copy

Posted jiandanxie

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习第八天,,文件操作,切片相当于浅copy相关的知识,希望对你有一定的参考价值。

切片的补充:

   切片相当于浅copy: 

a = [1,2,3,4,5]
b = a[:]
print(id(a),id(b),id(a[0]),id(a[0]))
#2432299195592 2432299195528 
#1795645664 1795645664

文件的操作:(分为三步)

  1.打开文件.产生文件句柄 f

  2.对文件句柄进行操作

  3.关闭文件句柄

f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘r‘)
f.read()
content = f.close()
print(content)
f.close()

  ‘open()是python的内置函数,调用的是windows系统的命令‘

    运行这三步报错的原因:

      1.编码方式错误

      2.路径不对

打开文件的模式以及对应的操作:

1.读

  以mode=‘r的模式打开文字类文件(默认打开模式)

技术分享图片
f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘r‘)
b = f.read()
print(b)
f.close()
    #五种读取方法:  
        f.read() 全部读取,以字符串形式输出
        f.read(10),,n表示read,在r模式下是读n个字符,在rb模式下是读n个字节
     f.readline() 按行读取
     f.readlines() 全部读取,以列表的形式输出 #----------以上四种方式读大数据时占用内存 # 以for循环方式读取 #(for循环读可迭代对象,每次在内存中只读取一行,读后就删除不占用内存)
     f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘r‘) for line in f: print(line,end=‘‘) #end=‘‘,清除换行符 f.close()
技术分享图片

  

 

以mode=‘rb‘打开任何文件

with open(r‘a.txt‘,‘rb‘) as f1,open(r‘b.txt‘,‘a‘,encoding=‘utf-8‘) as f2:
    for line in f1:
        f2.write(line.decode())

  以mode=‘r+‘打开文件(可读可追加)

    1.先读后写

f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘r+‘)
c = f.read(3) #c = f.read(3),不管是读三个还是全部的光标都移到了最后一行末尾
print(c)
b = f.write(‘a‘)
f.close()

    2.先写后读

f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘r+‘)
f.write(‘简单‘) # 光标在开头,写入几个字符覆盖几个字符
f.close()

 

   

2.追加

  a:只追加

f = open(r‘aaa.txt‘,encoding=‘utf-8‘,mode=‘a‘)
    # 没有aaa.txt文件则在同一个文件夹下创建该文件然后写入
    #有aaa.txt文件则在末尾添加新内容
    #有aaa.txt文件在末尾添加新内容+
则换行追加

    f.write() # 只能加字符串

 

    f.writelines() # 可以将列表转换成字符串加入文件,也可以直接在末尾加入字符串,元素中不能由数字

f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘a‘)
f.writelines([‘a‘,‘b‘,‘c‘]) #字符串里不能由int类型
f.close()

  a+:先追加再读,光标还在末尾,

    想要读要添加:f.seek(0)

     (光标在最后一行末尾,先读,则读不出内容.)

f = open(r‘a.txt‘,encoding=‘utf-8‘,mode=‘a+‘)
f.writelines(‘aaa‘)
f.seek(0)
b = f.read()
print(b)
f.close()

 3.写w:

f = open(r‘aaa.txt‘,encoding=‘utf-8‘,mode=‘w‘)
    #没有aaa.txt文件则在同一个文件夹下创建该文件然后写入
    #有aaa.txt文件则清空原文件,并添加新内容

 

 4.文件的其他操作方法:

  f.readable()

  f.writeable()

  f.seek() 调整光标(按字节移动光标)

    f.seek(0)

    f.seek(0,2)将光标调整到最后一行末尾,,以字节的方式移动

      (0) 光标在开头

      (0,1) 光标在现在位置

      (0,2) 光标的末尾,往后0个字节

      (1,1) 光标在现在位置往后1个字节

  f.tell() 获取到指针的位置

  f.truncate() 对原文件进行截取

    要在‘r+‘,‘a+‘模式下使用,不能再‘w‘,模式下使用

5.用with打开文件

技术分享图片
with open() as f:
    pass
    #优点:
    # 可以主动关闭文件句柄
    # 可以同时开启多个文件的句柄
    with open(1) as f1,            open(2) as f2
技术分享图片

6.文件改的操作

文件的改的操作:
    以读的模式打开原文件,产生一个文件句柄f1
    以写的模式创建一个新文件,产生一个文件句柄f2
    读取原文件内容,进行修改后,写入新文件
    将原文件删除
    将新文件重命名成原文件

 

技术分享图片
import os
with open(‘alex的深度剖析‘, encoding=‘utf-8‘) as f1,    open(‘alex的深度解析.bak‘,encoding=‘utf-8‘,mode=‘a‘) as f2:
    for line in f1:
        new_line = line.replace(‘alex‘,‘SB‘)
        f2.write(new_line)
os.remove(‘alex的深度剖析‘)
os.rename(‘alex的深度解析.bak‘, ‘alex的深度剖析‘)
技术分享图片



以上是关于python学习第八天,,文件操作,切片相当于浅copy的主要内容,如果未能解决你的问题,请参考以下文章

Python 3 学习的第八天——深浅拷贝以及函数

python学习第八天:文件操作

学习python课程第八天

第八天,文件操作

python第八天学习总结

Python - 列表 - 第八天