您的位置:首页 > 编程语言 > Python开发

python基础-文件目录操作

2018-01-12 17:08 295 查看


1.查看系统信息

>>>import os
>>>os.name  #操作系统类型
nt


posix,表示系统是Linux、Unix或OS,nt表示windows系统
>>>os.uname()


获取系统详细信息,但uname()不能再windows上使用。


2.环境变量

环境变量都保存在os.environ这个变量中
>>>os.environ


如果要获取某个环境变量的值,可以调用os.environ.get('key')
>>>os.environ.get('PATH')


3.操作文件和目录

#查看当前目录的绝对路径
>>>os.path.abspath('.')
'D:\\py\\www'

#查看当前目录第二种方法
>>>os.getcwd()
'D:\\py\\www'

#改变当前目录  如果改变的目录不存在,会报错
>>>os.chdir('D:\\py')
'D:\\py'

#将多个路径组合后返回(用正确的路径分隔符)
>>>os.path.join('/root','python','testdir')   #linux系统
/root/python/testdir

#创建一个目录
>>>os.mkdir('/root/python/test1')

#删除目录
>>>os.rmdir('/root/python/test1') #只能删除空文件夹
>>>shutil.rmtree(path) #遍历删除文件夹 得引入shutil模块

#遍历创建目录
>>>os.makedirs('/root/test/test1/test11')

1.os.path.isabs(path) #判断是否是绝对路径

2.os.path.relpath(path,start) #返回从start路径到path的相对路径的字符串,如果没有提供start,就是用当前目录作为start

3.os.path.dirname(path) #返回path最后一个斜杠之前的所有内容

4.os.path.basename(path) #返回path最后一个斜杠之后的所有内容

5.os.path.split() #同时获得一个路径的目录名和文件名,用元组储存
>>>path='/root/python/test/a.py'
>>>os.path.split(path)
('/root/puthon','a.py')

6.os.path.splitext() #取文件后缀
>>>path='/root/python/test/a.py'
>>>os.path.splitext()
('/root/python/test/a','.py')

6.os.path.getsize(filepath) #获取文件的大小(单位字节)

7.os.listdir(path) #返回目录下所有的目录和文件

#检查路径
1.os.path.exists(path) #文件或目录是否存在

2.os.path.isfile(file) #file存在,并且是文件,则返回True

3.os.path.isdir(path) #path存在,并且是目录,则返回True

#读取文件
1.os.read(file) #读取所有内容

2.os.readlines() #将文件所有内容存入一个list,每一行就是一个元素,并且每行内容后面还会带一个'\n'

#利用shelve模块保存变量
利用shelve模块,可以将Python程序中的变量保存到二进制的shelf问价中,这样,就可以从硬盘中回复变量的数据
#引入shelve
>>>import shelve
>>>shelfFile=shelve.open('mydata')
>>>cats=['xm','xh','xb']
>>>shelfFile['cats']=cats
>>>shelfFile.close()
#在windows上运行这些代码,当前目录会出现mydata.bak,mydata.dat,mydata.dir三个文件
#在OS上,只会创建一个mydata.db文件
>>>shelfFile=shelve.open('mydata')
>>>shelfFile['cats']
['xm','xh','xb']
>>>shelfFile.close()


shutil模块

1.shutil.copy(source,destination)
将路径source处的文件复制到路径destination处的目录,如果destination是一个文件名,则复制的同时也会重命名
>>>import shutil,os
>>>shutil.copy('D:\\py\\www\\count1.py','D:\\py\\www\\count2.py') #复制并且重命名


2.shutil.copytree(source,destination)复制整个文件夹,以及它的子文件夹和文件

3.shutil.move(source,destination),将路径source处的文件或文件夹移动到destination处
>>>import shutil,os
>>>shutil.move('D:\\py\\www\\count1.py','D:\\py\\www\\count3.py') #相当于重命名
>>>shutil.move('D:\\py\\www\\count1.py','D:\\py\\') #移动文件
#如果py目录不存在,则会把count1.py重命名为py


永久删除文件和文件夹

os.unlink(filepath) #删除文件

os.rmdir(path) #删除文件夹,但必须得是空文件夹

shutil.rmtree(path) #删除文件夹,包括它的子文件夹和文件

str.endswith(shuffix[,start[,end]])
shuffix 可以是一个字符串或字符
start 字符串中开始位置,即从str中的哪个位置开始查,默认从开头开始查
end 字符串结束位置

endswith()可以用来判断文件的后缀名
#删除所有的.txt文件
if(filename.endswith('.txt'):
os.unlink(filename)


遍历目录树

os.walk(path);
os.walk()在循环的每次迭代中,返回三个值:
1.当前那文件夹名称的字符串
2.当前文件夹子文件夹的字符串的列表
3.当前文件夹中文件的字符串的列表

所以可以使用for循环遍历目录树
import os
path='D:\\py\\www'
for folderName,subfolders,filenames in os.walk(path):
print('当前目录为:'+folderName)

for subfolder in subfolders:
print('子目录:'+folderName+': '+subfolder)
for filename in filenames:
print('子文件:'+folderName+': '+filename)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息