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

    Python 提供了必要的函数和方法进行默认情况下的文件基本操作。可以用 file 对象做大部分的文件操作。

    # 必须先用Python内置的open()函数打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写。
    # 一个文件被打开后,你有一个file对象,你可以得到有关该文件的各种信息。
    # File 对象的 close()方法刷新缓冲区里任何还没写入的信息,并关闭该文件,这之后便不能再进行写入。

    1、基本操作

    (1)只读 r

    f = open('test.txt',mode='r',encoding='utf-8')        #相对路径
    content = f.read()
    print(content,type(content))
    f.close()

    运行结果如下:
    叮当当嘟嘟哒哒,葫芦娃 <class 'str'>

    (2)只写 w【先将原文件的内容全部清除,再写】

    # 没有的话 创建文件
    f = open('log',mode='w',encoding='utf-8')                #相对路径
    f.write('高清骑兵步兵')
    f.close()

    f = open('log',mode='w',encoding='utf-8')                       #相对路径
    f.write('高这是新加的')
    f.close()

     

    # ‘wb’时,open()里没有 encoding
    
    f = open('log',mode='wb')
    f.write('这是wb类型'.encode('utf-8'))
    f.close()

    (3)追加 a

    f = open('log',mode='a',encoding='utf-8')
    f.write('这是追加,真好用啊')              #追加时,也是用write,只不过mode设置为‘a’
    f.close()

    (4)读写 r+:最常用,带b的一般不用

    f = open('log',mode='r+',encoding='utf-8')
    f.write('这是')         # write的时候,会从头覆盖原来的
    print(f.read())
    f.close()
    
    运行结果:
    7

    (5)写读 w+

    f = open('log',mode='w+',encoding='utf-8')
    f.write('gagagag')             # 只要有w,都是先清除,再写
    f.seek(0)                           #f.seek():调光标
    print(f.read())
    f.close()

    (6)a+

    f = open('log',mode='a+',encoding='utf-8')
    f.write('这是a+a+a+')
    f.seek(0)
    print(f.read())                 #追加的时候只能 w
    f.close()

    (7)with open...   【 不必写f.close(),自动关闭】

    with open('log',mode='r+',encoding='utf-8') as obj,
            open('log',mode='w+',encoding='utf-8') as f1:
        f1.write('123')
        f1.seek(f1.tell())           # seek(3),到行尾了
        print(f1.readline())
        print(obj.readline())
    
        # line = f.readlines()       #每一行当成列表中的一个元素,添加到list中
        # for line in f:
        #     print(line)                #不建议全读,建议一行一行读 或者 截取读
    
    运行结果:
    
    123

    2、文件定位

    tell()方法:告诉文件内的当前位置, 换句话说,下一次的读写会发生在文件开头这么多字节之后。

    seek(offset [,from])方法:改变当前文件的位置。     

      Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。

        如果from被设为0,这意味着将文件的开头作为移动字节的参考位置。

        如果设为1,则使用当前的位置作为参考位置。

        如果它被设为2,那么该文件的末尾将作为参考位置。

    # 打开一个文件
    fo = open("foo.txt", "r+")
    str = fo.read(10)
    print("读取的字符串是 : ", str)
     
    # 查找当前位置
    position = fo.tell()
    print("当前文件位置 : ", position)
     
    # 把指针再次重新定位到文件开头
    position = fo.seek(0, 0)
    str = fo.read(10)
    print("重新读取字符串 : ", str)
    
    # 关闭打开的文件
    fo.close()
    
    运行结果:
    读取的字符串是 :  www.runoob
    当前文件位置 :  10
    重新读取字符串 :  www.runoob

    3、重命名和删除文件

    (1)rename()方法:需要两个参数,当前的文件名和新文件名。

    # 语法:
    os.rename(current_file_name, new_file_name)

    (2)remove()方法:删除文件,需要提供要删除的文件名作为参数。

    # 语法
    os.remove(file_name)

    4、Python里的目录:

    (1)mkdir()方法

    可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。

    # 语法
    os.mkdir("newdir")

    (2)chdir()方法

    可以用chdir()方法来改变当前的目录。chdir()方法需要的一个参数是你想设成当前目录的目录名称。

    # 语法
    os.chdir("newdir")

    (3)getcwd()方法

    getcwd()方法显示当前的工作目录。

    # 语法
    print(os.getcwd())

    (4)rmdir()方法【一般不用!!!】

    rmdir()方法删除目录,目录名称以参数传递。

    在删除这个目录之前,它的所有内容应该先被清除。

    # 语法
    os.rmdir('dirname')
  • 相关阅读:
    (网页)中的简单的遮罩层
    (后端)shiro:Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.
    (网页)jQuery的时间datetime控件在AngularJs中使用实例
    Maven Myeclipse 搭建项目
    MyBatis 环境搭建 (一)
    java 常用方法
    XML 基础
    JS BOM
    js 事件
    js 的使用原则
  • 原文地址:https://www.cnblogs.com/timetellu/p/10677505.html
Copyright © 2011-2022 走看看