python第八章:读写文件-学习记录

一、文件与文件路径

  1. 将单个文件和路径上的文件夹名称的字符串传递给os.path.join(),它就会返回一个文件路径的字符串,包含正确的路径分隔符(根据所在的操作系统windown linux 或者mac)
  2. os.getcwd()获取当前工作路径, os.chdir()改变当前路径到指定路径,指定目录不存在会报错。os.makedirs()函数创建新文件夹()
     
    dir_path = os.getcwd()
    print(dir_path)
    new_path = os.chdir("F:\\workspace\\gitSpace")
    print(os.getcwd())
    
    结果是:
    F:\workspace\gitSpace\testForStudy
    F:\workspace\gitSpace
  3. 绝对路径:总是从根文件夹开始
    相对路径:它相对于程序当前的工作目录。
  4. os.path.relpath(path,start)将返回从start路径到path的相对路径的字符串。
    os.path.abspath(path)将返回参数的绝对路径的字符串,是将相对路径转换成绝对路径的简便方法
    os.path.isabs(path)如果参数是一个绝对路径,就返回True,如果参数是一个相对路径,就返回False
    os.path.dirbame(path)将返回path参数中最后一个斜杆之前的所有内容的字符串
    os.path.basename(path)将返回path参数中最后一个斜杆之后的所有内容
    os.path.split()获取目录名称的基本名称,返回的是两个字符串的元组。注意:它不会接受一个文件路径并返回每个问佳佳的字符串的列表。

    os.path.sep: 路径分隔符,将路径分割成列表形式
    tmp = "F:\\workspace\\gitSpace\\git操作步骤.txt"
    print("-----------------------")
    print(os.path.dirname(tmp))
    print(os.path.basename(tmp))
    print(os.path.split(tmp))
    
    结果是:
    F:\workspace\gitSpace
    git操作步骤.txt
    ('F:\\workspace\\gitSpace', 'git操作步骤.txt')
  5. os.path.getsize(path)将返回path参数中文件的字节数。
    调用os.listdir(path)将返回文件名字符串的列表,包含path参数中的每个文件
    os.path.exists(path)判断指定的文件或者文件夹是否存在
    os.path.isfile(path)如果path参数存在,并且是一个文件,则返回True,否则返回false
    os.path.isdir(path)path参数存在,并且是否是一个文件夹,将返回True,否则返回false
  6. shelve模块:读写文件的3个步骤:
    调用open()函数,返回一个File对象
    调用File对象的read()或者write()方法
    调用File对象的close()方法,关闭该文件
  7. read()方法返回整个文件的内容为一个字符串。
    readlines()方法,将文本的每一行读取为一个字符串,然后返回一个列表。
    问题:
    file_path = os.getcwd()
    file_conf = file_path + '/1.conf'
    
    f = open(file_conf, 'r+')
    
    # print(f.read())
    print("--------------------")
    print(f.readlines())
    f.close()
    
    如果f.read()和f.readlines()同时使用,readlins()是没有返回值的,只有注释掉上面的才会有返回值
  8. 写入文件, w 或者a模式
    w模式是模块,a模式是追加,没有的文件名会自动创建。

  9. shelve模块保存变量:可以在程序中添加保存和打开的功能。shelve打开的值不需要用读模式或者写模式,因为它打开后即能读也能写。文件中保存的值有keys()和values()方法

  10. 用pprint.pfromat()函数保存变量:保存的格式和pprint.pprint()返回同样文本字符串,但是不打印,在语法是正确的python代码,保存在一个变量中,存入python文件,以便将来使用。
     

    import pprint
    import os
    
    cats = [{'name': 'Zophie', 'desc': 'chubby'}, {'name': 'Pooka', 'desc': 'fluffy'}]
    
    pprint.pprint(cats)
    
    tmp = pprint.pformat(cats)
    # print(tmp)
    dir_path = os.getcwd() + '/'
    
    fileObj = open(dir_path+ 'myCats.py', 'w')
    fileObj.write('cats =' + tmp + '\n')
    fileObj.close()
    
    import  myCats
    
    print(myCats.cats)
    print(myCats.cats[0])
    
    
    结果:
    [{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]
    [{'desc': 'chubby', 'name': 'Zophie'}, {'desc': 'fluffy', 'name': 'Pooka'}]
    {'desc': 'chubby', 'name': 'Zophie'}

     对于大多数的应用,利用shelve模块来保存数据,是将变量保存到文件的最佳方式。只有基本数据累心个,如整型int,浮点型,字符串,列表和字典,可以作为简单文本写入文件,例如,File对象就不能够编码为文本。

  11. 总结:
    文件被组织在文件夹(也称为目录), 路径描述了一个文件的位置。
    运行在计算机上的每个程序都有一个当前工作目录,它让你相对于当前的位置指定文件路径,而非总是需要完成的路径(也称为绝对路径)。
    os.path模块中包含许多函数,用于操作文件路径。

猜你喜欢

转载自blog.csdn.net/q1138266752/article/details/83715403