文件的基本方法
1、文件路径在不同系统上的不同表达方式
OS X :文件路径用正斜杠,/
Linux:文件路径用正斜杠,/
Windows:文件路径用反斜杠,\ (第一个反斜杠代表转义,即\\)
2、当前工作路径,cwd
3、工作路径相关方法
需要import os模块
os.getcwd() //获取当前工作路径
os.chdir() //改变工作路径,改变后,之前该路径下的文件路径,都变为更改后的路径
4、相对路径和绝对路径
.. 两个点代表父文件夹
. 一个点代表当前文件夹
os.path.abspath() //返回参数的绝对路径字符串
os.path.isabs() //判断参数是否是绝对路径
os.path.isabs(os.path.abspath()) -->返回True
os.path.relpath(path,start) //返回从start到path的相对路径字符串;如果没有提供start,就从当前路径作为开始路径
os.path.dirname() //返回参数总最后一个斜杆之前的所有内容,即目录名称,可用于查看文件的路径
os.path.basename() //回参数总最后一个斜杆之后的内容,即基本名称,可用于查看文件的文件名
os.path.split() // 返回文件目录名称和基本名称的元组
'path'.split(os.path.sep) // 将path的路径按照斜杠分割称若干个字符串
5、文件夹相关的方法
os.makedirs() //创建新的文件夹,可以连续创建多级文件夹
os.path.getsize(path) //返回path参数重文件的字节数,即文件大小
os.listdir(path) // 返回文件名的字符串列表,包含path参数中的每一个文件
os.path.join()//用于构建系统上的有效路径,可以添加几个参数,用于创建路径
6、查看路径有效性
os.path.exists() // 判断路径是否存在,返回布尔结果
os.path.isfile() // 判断参数存在,且为一个文件,返回布尔结果
os.path.isdir() // 判断参数存在,且问一个文件夹,返回布尔结果
文件的读写
1、调用open()函数,返回一个File对象
helloFile = open('/文件地址')
2、调用File对象的read()或者write()方法
读取文件
helloContent = helloFile.read()
//也可以用readline()方法,从该文件中取得一个字符串的列表,没有字符串就是文件中的每一个行数据
写入文件
helloFile.write('rewrite') //返回字符串的长度,此时helloFile文件被覆盖
helloFile.write('rewrite','a') //使用第二个参数a,表示添加模式,此时helloFile文件不会被覆盖,而是在文件末尾添加
3、调用File对象的close()方法,关闭该文件
helloFile.close()
组织文件
1、shutil
shutil.copy(source, destination) //将路径source处的文件复制到路径destination处的文件夹;如果destination是个文件名,则会给这个复制文件起个新的名字
shutil.move(source, destination) //将路径source处的文件移动到路径destination处的文件夹;如果destination是个文件名,则会给这个文件修改为新的名字
os.unlink(path) //将path处的文件夹移除,彻底删除
filename.endswith(' ') // 判断特定的文件结尾
send2trash.send2trash() // 删除文件和文件夹,移除到回收站
2、遍历目录树
os.walk('') //遍历路径,返回3个值,分别是当前文件夹名称的字符串,当前文件夹中字文件夹的字符串的列表,当前文件夹中文件的字符串的列表
3、zipfile模块压缩文件
1)读取zip文件
exampleZip = zipfile.ZipFile('example.zip')
exampleZip.namelist()// 返回目录
spamInfo = exampleZip.getinfo('examplefile.txt')// 返回一个ZipInfo对象
spamInfo.file_size //返回对象文件的原始大小
spamInfo.compress_size //返回对象文件压缩后的大小
exampleZip.close() //关闭文件流
2)总Zip文件中解压
exampleZip = zipfile.ZipFile('example.zip')
exampleZip.extractall() //执行后文件会被解压到c盘根目录
exampleZip.extractall('文件路径') //执行后文件会被解压到参数文件路径中,若路径不存在,则会创建新的
exampleZip.extract('压缩文件中的特定文件','解压后的路径') //解压压缩文件中的特定文件,也可以用第二个参数传入解压后的路径
eexampleZip.close()
3)创建和添加到zip文件
newZip = zipfile.ZipFile('new.zip','w') //以写模式打开ZipFile对象,会擦除原有文件,添加的话,第二个参数是'a'
newZip.write('文件',compress_type=zipfile.ZIP_DEFLATED) //ZIP_DEFLATED是指压缩算法
newZip.close()