zoukankan      html  css  js  c++  java
  • [Python基础]Python文件处理小结

    1. 文件的打开与关闭

    <1>打开文件

    在python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件

    open(文件名,访问模式)

    示例如下:

    f = open('test.txt', 'w')

    说明:

    访问模式说明
    r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
    w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
    wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
    w+ 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
    wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
    ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

    <2>关闭文件

    close( )

    示例如下:

    # 新建一个文件,文件名为:test.txt
    f = open('test.txt', 'w')
    
    # 关闭这个文件
    f.close()

    2. 文件的读写

    <1>写数据(write)

    使用write()可以完成向文件写入数据

    demo:

    f = open('test.txt', 'w')
    
    f.write('hello world, i am here!')
    
    f.close()

    运行现象:

    <2>读数据(read)

    使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

    demo:

    f = open('test.txt', 'r')
    
    content = f.read(5)
    
    print(content)
    
    print("-"*30)
    
    content = f.read()
    
    print(content)
    
    f.close()

    运行现象:

     

    <3>读数据(readlines)

    就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

    #coding=utf-8
    
    f = open('test.txt', 'r')
    
    content = f.readlines()
    
    print(type(content))
    
    i=1
    for temp in content:
        print("%d:%s"%(i, temp))
        i+=1
    
    f.close()

    运行现象:

    <4>读数据(readline)

    #coding=utf-8
    
    f = open('test.txt', 'r')
    
    content = f.readline()
    print("1:%s"%content)
    
    content = f.readline()
    print("2:%s"%content)
    
    f.close()

    运行现象:

    3. 文件复制

    #coding=utf-8
    
    oldFileName = raw_input("请输入要拷贝的文件名字:")
    
    oldFile = open(oldFileName,'rb')
    
    # 如果打开文件
    if oldFile:
    
        # 提取文件的后缀
        fileFlagNum = oldFileName.rfind('.')
        if fileFlagNum > 0:
            fileFlag = oldFileName[fileFlagNum:]
    
        # 组织新的文件名字
        newFileName = oldFileName[:fileFlagNum] + '[复件]' + fileFlag
    
        # 创建新文件
        newFile = open(newFileName, 'wb')
    
        # 把旧文件中的数据,一行一行的进行复制到新文件中
        for lineContent in oldFile.readlines():
            newFile.write(lineContent)
    
        # 关闭文件
        oldFile.close()
        newFile.close()

    4. 文件的随机读写

    <1>获取当前读写的位置

    在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取。

    # 打开一个已经存在的文件
    f = open("test.txt", "r")
    str = f.read(3)
    print "读取的数据是 : ", str
    
    # 查找当前位置
    position = f.tell()
    print "当前文件位置 : ", position
    
    str = f.read(3)
    print "读取的数据是 : ", str
    
    # 查找当前位置
    position = f.tell()
    print "当前文件位置 : ", position
    
    f.close()

    <2>定位到某个位置

    如果在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()

    seek(offset, from)有2个参数

    • offset:偏移量
    • from:方向
      • 0:表示文件开头
      • 1:表示当前位置
      • 2:表示文件末尾

    demo:把位置设置为:从文件开头,偏移5个字节。

    # 打开一个已经存在的文件
    f = open("test.txt", "r")
    str = f.read(30)
    print "读取的数据是 : ", str
    
    # 查找当前位置
    position = f.tell()
    print "当前文件位置 : ", position
    
    # 重新设置位置
    f.seek(5,0)
    
    # 查找当前位置
    position = f.tell()
    print "当前文件位置 : ", position
    
    f.close()

    demo:把位置设置为:离文件末尾,3字节处

     # 打开一个已经存在的文件
    f = open("test.txt", "r")
    
    # 查找当前位置
    position = f.tell()
    print "当前文件位置 : ", position
    
    # 重新设置位置
    f.seek(-3,2)
    
    # 读取到的数据为:文件最后3个字节数据
    str = f.read()
    print "读取的数据是 : ", str
    
    f.close()

    5. 文件的重命名、删除

    有些时候,需要对文件进行重命名、删除等一些操作,python的os模块中都有这么功能

    <1>文件重命名

    os模块中的rename()可以完成对文件的重命名操作

    rename(需要修改的文件名, 新的文件名)

    import os
    
    os.rename("毕业论文.txt", "毕业论文-最终版.txt")

    <2>删除文件

    os模块中的remove()可以完成对文件的删除操作

    remove(待删除的文件名)

    import os
    
    os.remove("毕业论文.txt")

    6. 文件夹的相关操作

    实际开发中,有时需要用程序的方式对文件夹进行一定的操作,比如创建、删除等。

    就像对文件操作需要os模块一样,如果要操作文件夹,同样需要os模块。

    <1>创建文件夹

    import os
    
    os.mkdir("张三")

    <2>获取当前目录

    import os
    
    os.getcwd()

    <3>改变默认目录

    import os
    
    os.chdir("../")

    <4>获取目录列表

    import os
    
    os.listdir("./")

    <5>删除文件夹

    import os
    
    os.rmdir("张三")

    7. 批量修改文件名

    #coding=utf-8
    
    #批量在文件名前加前缀
    
    import os
    
    funFlag = 1 # 1表示添加标志  2表示删除标志
    
    folderName = './renameDir/'
    
    # 获取指定路径的所有文件名字
    dirList = os.listdir(folderName)
    
    # 遍历输出所有文件名字
    for name in dirList:
        print name
    
        if funFlag == 1:
            newName = '[修改]-' + name
        elif funFlag == 2:
            num = len('[修改]-')
            newName = name[num:]
        print newName
    
        os.rename(folderName+name, folderName+newName)
  • 相关阅读:
    Windows Store App 主题动画
    Windows Store App 过渡动画
    Windows Store App 控件动画
    Windows Store App 近期访问列表
    Windows Store App 文件选取器
    Windows Store App 访问应用内部文件
    Windows Store App 用户库文件分组
    Windows Store App 获取文件及文件夹列表
    Windows Store App 用户库文件夹操作
    Windows Store App 用户库文件操作
  • 原文地址:https://www.cnblogs.com/DarrenChan/p/6785247.html
Copyright © 2011-2022 走看看