zoukankan      html  css  js  c++  java
  • python基础 文件操作

    文件操作

    文件操作的顺序:

    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盘里的一个文件夹中等。 
  • 相关阅读:
    Python爬虫实验报告之Big_Homework2_Douyu
    Python_dict
    Common sequence manipulation functions
    python基于opencv库的人脸识别总结
    使用cwrsync同步windows文件到linux
    搭建mosquitto
    docker搭建mqtt
    docker部署gofastdfs
    ap配置
    冒泡排序
  • 原文地址:https://www.cnblogs.com/soleZ/p/8111041.html
Copyright © 2011-2022 走看看