欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python OS

程序员文章站 2024-03-24 12:07:46
...

>>> 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'
>>>