一、文件与文件路径
- 将单个文件和路径上的文件夹名称的字符串传递给os.path.join(),它就会返回一个文件路径的字符串,包含正确的路径分隔符(根据所在的操作系统windown linux 或者mac)
- 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
- 绝对路径:总是从根文件夹开始
相对路径:它相对于程序当前的工作目录。 - 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')
- 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 - shelve模块:读写文件的3个步骤:
调用open()函数,返回一个File对象
调用File对象的read()或者write()方法
调用File对象的close()方法,关闭该文件 - 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()是没有返回值的,只有注释掉上面的才会有返回值
-
写入文件, w 或者a模式
w模式是模块,a模式是追加,没有的文件名会自动创建。 -
shelve模块保存变量:可以在程序中添加保存和打开的功能。shelve打开的值不需要用读模式或者写模式,因为它打开后即能读也能写。文件中保存的值有keys()和values()方法
-
用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对象就不能够编码为文本。
-
总结:
文件被组织在文件夹(也称为目录), 路径描述了一个文件的位置。
运行在计算机上的每个程序都有一个当前工作目录,它让你相对于当前的位置指定文件路径,而非总是需要完成的路径(也称为绝对路径)。
os.path模块中包含许多函数,用于操作文件路径。