zoukankan      html  css  js  c++  java
  • python file对象测试数据的读写操作及OS模块介绍(四)

    import   from....import 引入模块 引入类

    import

    如果文件在lib下而且是python模块 :import 模块名。

    from....import

    from 包名.包名.....from 模块名/函数名  一层一层引用,不能使用模块名.函数名

    1.若要调用模块内部的函数:模块名.函数名().

    2.若引用包下面的模块:import 包名.模块名,

    file 对象测试数据的读写与操作

    OS模块介绍

    Python里面的OS模块有许多方法,通过代码实现创建、删除和更改目录操作如下:

    一、针对路径

    ①获取当前的目录路径及文件的路径

    os.getcwd():getcwd()方法显示当前的工作路径,只具体到路径,不具体到文件。

    os.path.realpath(path);返回path的真实路径如果参数是:__file__就说明是本文件所在的绝对路径。

    例子

    import os

    path=os.getcwd() #获取当前模块的目录

    print(path)

    path2=os.path.realpath(__file__) #获取当前文件的绝对路径

    print(path2)

    结果

    D:pythonFramWork20190928_basic

    D:pythonFramWork20190928_basiclesson_Four file.py

    区别:前者定位到文件目录,或者定位到文件

    ②只针对文件夹(目录),删除,创建新目录

    os.mkdir(路径名字):在某个目录下创建一个新目录,确保它的上级要存在。

    os.rmdir(路径名字):删掉一个目录,只能删除空目录。

    os.listdir():获取当前路径下的目录列表。返回列表格式数据。

    ③路径的拼接

    1.利用字符串的拼接

    例子

    import os

    path=os.getcwd() #获取当前模块的目录

    new_path=path+"\test" #字符串拼接

    os.mkdir(new_path) #创建新目录

    print(new_path) #打印

    结果:

    D:pythonFramWork20190928_basic est

    2.os.path.join(a,b):连接两个部分的路径,组成一个完整的路径。

    例子:

    import os

    path=os.getcwd() #获取当前模块的目录

    new_path=os.path.join(path,"test","test2") #字符串拼接,创建test2 test必须存在,同理删除目录时也需要先删除test2

    os.mkdir(new_path) #创建新目录

    print(new_path) #打印

    结果 D:pythonFramWork20190928_basic est est2

    ④判断文件的类型返回布尔值

    os.path.isdir:判断当前文件是否是目录。返回布尔值。

    os.path.isfile:判断当前文件是否是文件,返回布尔值

    例如:

    print(os.path.isfile(os.getcwd()))  结果 False

    print(os.path.isdir(os.getcwd()))  结果 True

    ⑤切割split,放回元组类型的数据,只切割最后一级,切割时按照来切割

    os.path.solit(当前目录或文件)

    例如

    res=os.path.split(os.getcwd())

    print('切割路径之后的值是:{0}'.format(res))

    结果 切割路径之后的值是:('D:\python\FramWork', '20190928_basic')

    res=os.path.split(os.path.realpath(__file__))

    print('切割路径之后的值是:{0}'.format(res))

    结果 切割路径之后的值是:('D:\python\FramWork\20190928_basic', 'lesson_Four file.py')

    二、针对txt(三种方式)

    A.read()方法

    1) read(count)方法从一个打开的文件中读取一个字符串。

    2) 里面传递要读取的字节数

    3) 如果不传递默认读取全部数据

    4) 读完之后,指针会定位到读完之后的位置

    readline()#每次读取一行数据 readlines()#按行读取数据,返回列表类型数据

    例子

    file=open("test.txt",'r')

    res=file.readline()

    print(res)

    结果 Easy come, easy go.

    例如

    file=open("test.txt",'r')

    res=file.readlines()

    print(res)

    结果 ['Easy come, easy go. ', 'An hour in the morning is worth two in the evening.']

    B.write()方法:

    write()方法可将任何字符串写入一个打开的文件。

    注意:write()方法不会在字符串的结尾添加换行符( ,所以无法实现自动换行。

    writelines():里面传入你要写的列表内容,可以写入多行!
    r只读 文件必须存在

    file=open("test.txt",'r')

    r+支持读写

    例如:

    file=open("test.txt",'r+')

    res=file.write("Easy come, easy go.") #写入到test文件中

    w只写如果存在就直接写不存在就新建一个文件再去写内容,清空文件再写

    w+ 读写如果存在就直接写不存在就新建一个文件再去写内容

    a追加 append 如果存在就直接写不存在就新建一个文件再去写内容。直接追加在后面。

    a+ 在原有内容上写内容

    1)针对文件的读取

    res=file.read()#默认读取所有的内容

    读取指定长度的内容

    res=file.read(2)

    print(“读取到的内容是:{0}”.formate(res))

    2)写入内容到文件中。先读后写,只写位置与光标有关,解决中文乱码问题file=open("test.txt",'r+',encoding=’utf-8’)

    file.write(“写入的内容”)

    ④文件定位 seek(offset[,from])方法改变当前文件的位置,Offset变量表示要移动的字节数,from变量指定开始移动字节的参考位置。0头部,1当前位置,2尾部.

  • 相关阅读:
    基础算法(C#)
    Mac系统Docker安装Redis
    Mac系统Docker安装jenkins
    设计模式-缓存驻留模式
    设计模式列表
    vs问题---...inDebugJns.Gaea.dll”标记为系统必备组件,必须对其进行强签名。
    vs问题--------------标记为系统必备组建
    Excel--------Excel实现数据对比
    IIS--------问题解决(.net开发中localhost可以访问,本地ip不可以)
    .NET--------枚举扩展方法(枚举转list,获取枚举描述)
  • 原文地址:https://www.cnblogs.com/an-ning0920/p/11672262.html
Copyright © 2011-2022 走看看