【PYTHON】模块函数之os 文件处理

os.walk() 函数遍历目录树

os.walk() # 传入字符串,即文件夹的路径;返回3个值:当前文件夹名称的字符串、当前文件夹中子文件夹的字符串的列表、当前文件夹中文件的字符串的列表。

for folderName, subfolders, filenames in os.walk('C:\\delicious'):

    print('The current folder is ' + folderName)
    for subfolder in subfolders:
        print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
    for filename in filenames:
        print('FILE INSIDE ' + folderName + ': '+ filename)
    print('')
The current folder is C:\delicious
SUBFOLDER OF C:\delicious: cats
SUBFOLDER OF C:\delicious: walnut
FILE INSIDE C:\delicious: spam.txt
The current folder is C:\delicious\cats
FILE INSIDE C:\delicious\cats: catnames.txt
FILE INSIDE C:\delicious\cats: zophie.jpg

os.unlink(path) 函数删除path处的文件(回收站无)

os.rmdir(path) 函数删除path处的文件夹;必须为空

os.path.join() 函数返回一个文件路径字符串

>>> import os
>>> os.path.join('usr', 'bin', 'spam')
'usr\\bin\\spam'

os.getcwed() 函数取得当前工作路径的字符串

>>> import os
>>> os.getcwd()
'C:\\Python34'

os.chdir() 函数改变当前工作路径

>>> os.chdir('C:\\Windows\\System32')
>>> os.getcwd()
'C:\\Windows\\System32'

os.makedirs() 函数创建新文件夹

>>> import os
>>> os.makedirs('C:\\delicious\\walnut\\waffles')

# exist_ok() 默认为false,默认状态下,如果存在该文件夹则引发错误,设置为True,保持不变。
>>> os.makedirs('xkcd',exist_ok=True)

绝对路径和相对路径的处理

os.path.abspath(path) # 返回参数的绝对路径的字符串。

os.path.isabd(path) # 如果参数是一个绝对路径,返回True;是一个相对路径,返回False。

os.path.relpath(path,start) # 将返回从start路径到path的相对路径字符串;没有提供start参数,就使用当前工作目录作为开始路径。

>>> os.path.abspath('.')            # “点”文件夹指的是绝对路径('C:\\Python34')
'C:\\Python34'
>>> os.path.abspath('.\\Scripts')
'C:\\Python34\\Scripts'
>>> os.path.isabs('.')
False
>>> os.path.isabs(os.path.abspath('.'))
True

os.path.dirname(path) # 返回一个字符串;包含path参数中最后一个斜杠之前的所有内容。

os.path.basename(path) # 返回一个字符串;包含path参数中最后一个斜杠之后的所有内容。

>>> path = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.basename(path)
'calc.exe'
>>> os.path.dirname(path)
'C:\\Windows\\System32'

os.path.split() # 返回元组;获得一个路径的目录名称和基本名称。

>>> calcFilePath = 'C:\\Windows\\System32\\calc.exe'
>>> os.path.split(calcFilePath)
('C:\\Windows\\System32', 'calc.exe')
# 可以调用上面两个函数,返回同样元组。
>>> (os.path.dirname(calcFilePath), os.path.basename(calcFilePath))
('C:\\Windows\\System32', 'calc.exe')

os.path.sep() # 为正确的文件夹分隔斜杠

>>> calcFilePath = 'C:\\Windows\\System32\\calc.exe'
>>> calcFilePath.split(os.path.sep)
['C:', 'Windows', 'System32', 'calc.exe']

查看文件大小和文件夹内容

os.path.getsize(path) # 返回path参数中文件的字节数

os.listdir(path) # 返回文件名字符串的列表

>>> os.path.getsize('C:\\Windows\\System32\\calc.exe')
776192
>>> os.listdir('C:\\Windows\\System32')
['0409', '12520437.cpx', '12520850.cpx', '5U877.ax', 'aaclient.dll',
--snip--
'xwtpdui.dll', 'xwtpw32.dll', 'zh-CN', 'zh-HK', 'zh-TW', 'zipfldr.dll']

检查路径有效性

os.path.exists(path) # 返回布尔类型;判断path参数所指的文件或文件夹是否存在。

os.path.isfile(path) # 返回布尔类型;判断path参数是否存在,并且是一个文件。

os.path.isdir(path) # 返回布尔类型;判断path参数是否存在,并且是一个文件夹。

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值