>>> os.getcwd() <<<获取当前文件夹路径
'C:\\Users\\fengx\\Desktop\\python\\1012_basic'
>>> os.listdir() <<<列出当前路径下所有文件和文件夹
['1.py', '2.py', '29_1.py', '3.py', 'file', 'haha.txt', '通讯录程序.py']
>>> os.path.isdir('file') <<<判断是否是文件夹,只能判断当前路径下的文件是否为文件夹(此处需要特别注意,如果要判断文件夹时,要chdir到要判断的路径下才可以)
True
>>> os.path.isdir('1.py') <<<
False
>>> os.pardir <<<返回上一级目录
'..'
>>> os.listdir()
['1.py', '2.py', '29_1.py', '3.py', 'file', 'haha.txt', '通讯录程序.py']
>>> os.getcwd()
'C:\\Users\\fengx\\Desktop\\python\\1012_basic'
>>> os.sep <<<分隔符
'\\'
>>> os.chdir('C:/Users/fengx/Desktop/python/1012_basic/') <<<修改目录
>>> os.curdir <<<当前目录
'.'
>>> os.pardir <<<
'..'
>>> os.path.isdir('file')
True
>>> os.path.isdir('1.py')
False
>>>
>>> os.path.splitext('uuid.py')[1] <<<splitext,把参数分割成元组tuple
'.py'
#######################os.walk()########################
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。
在Unix,Windows中有效。
语法
walk()方法语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数
-
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
-
topdown --可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录。
-
onerror -- 可选, 需要一个 callable 对象,当 walk 需要异常时,会调用。
-
followlinks -- 可选, 如果为 True,则会遍历目录下的快捷方式(linux 下是 symbolic link)实际所指的目录(默认关闭)。
返回的三元组:
root 所指的是当前正在遍历的这个文件夹的本身的地址
dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
范例:
>>> a=os.walk(os.getcwd()) >>> a <generator object walk at 0x0682FEB0> >>> os.getcwd() 'C:\\Users\\fengx\\Desktop\\python\\1012_basic' >>> a <generator object walk at 0x0682FEB0> >>> for i in a: print(i) ('C:\\Users\\fengx\\Desktop\\python\\1012_basic', ['file'], ['1.py', '2.py', '29_1.py', '3.py', '30.py', '30_0.py', '30_1.py', '30_2.py', '30_4.py', '34.py', 'haha.txt', '通讯录程序.py']) ('C:\\Users\\fengx\\Desktop\\python\\1012_basic\\file', [], ['haha.txt', 'haha1.txt', 'haha2.txt'])
在Windows的路径C:/Users/fengx/Desktop/python/1012_basic下,存在一堆.py文件和一个叫file的文件夹,file文件夹下没有其他文件夹了,只有haha.txt等txt文件
因为返回的dirs和files都是列表形式,且dirs是i[1],files是i[2],则我们可以通过for循环,获取文件夹下的文件夹名称和文件名称
################################
import easygui as g
import os
file_path = g.fileopenbox(default='*.txt')
with open(file_path) as f:
title=os.path.basename(file_path)
msg='文件【%s】的内容如下:'%title
text=f.read()
g.textbox(msg,title,text)
title=os.path.basename(file_path)
此处的os.path.basename只会显示文件名
>>> title
'新建文本文档.txt'
>>> file_path
'C:\\Users\\fengx\\Desktop\\python\\exersice\\小甲鱼课后习题\\35\\新建文本文档.txt'
>>>