os模块

TOC

一、os模块

os与操作系统交互的模块

1、获取当前文件中的上一级目录

import os
BACK_DIR = os.path.dirname(__file__)
print(back_dir)

# ps: 路径相关的变量名用大写,做常量

2、项目的根目录

import os
BACK_DIR = os.path.dirname(__file__)
BASE_DIR = os.path.dirname(BACK_DIR)
print(BASE_DIR)

G:/python项目

3、路径的拼接

拼接文件的绝对路径

JOiN_PATH = os.path.join(BASE_DIR, 'random模块.py')
print(JOiN_PATH)

G:/python项目
andom模块.py

4、判断文件或文件夹是否存在

若文件存在返回True,若不存在返回False

# 判断文件或文件夹是否存在
print(os.path.exists(JOiN_PATH))
print(os.path.exists(BASE_DIR))

# 判断文件夹是否存在
os.path.isdir()

# 判断文件是否存在
os.path.isfile()

5、创建文件夹

DIR_PATH = os.path.join(BACK_DIR, '商品')
os.mkdir(DIR_PATH)

6、删除文件夹

只能删除空的文件夹

os.rmdir(DIR_PATH)

7、获取某个文件夹中所有文件的名字

list_dir = os.listdir('G:python项目')
print(list_dir)


['.idea', 'day10', 'day11', 'day12', 'day13', 'day14', 'day15', 'day4', 'day5', 'day6', 'day7', 'day8', 'day9']

8、enumerate

语法:enumerate(可迭代对象)

  • 可迭代对象中若是字典,则取字典中所有的key

返回一个enumerate对象,相当于迭代器,对象有一个个的元组(索引,元素)

res = enumerate(list_dir)
print(res)
print(list(res))  # list(迭代器对象)--->返回的是列表

<enumerate object at 0x0000028DB3A43F98>

[(0, '.idea'), (1, 'day10'), (2, 'day11'), (3, 'day12'), (4, 'day13'), (5, 'day14'), (6, 'day15'), (7, 'day4'), (8, 'day5'), (9, 'day6'), (10, 'day7'), (11, 'day8'), (12, 'day9')]

需求,让用户选择相应的文件

import os
shopping_list = os.listdir(r'G:python项目day15商品目录')
num_list = enumerate(shopping_list)


while True:
    for index, name in num_list:
        print(f'页面编号:{index}  分类:{name}')
    choice = input('请输入要查阅的页面编号:').strip()
    if not choice.isdigit():
        print('请输入编号!')
        continue
    choice = int(choice)
    if choice not in range(len(shopping_list)):
        print('请输入合格范围的编号')
        continue

    file_name = shopping_list[choice]

    FILE_PATH = os.path.join(r'G:python项目day15商品目录', file_name)

    with open(FILE_PATH, mode='r', encoding='UTF-8') as rf:
        print(rf.read())




原文地址:https://www.cnblogs.com/cnhyk/p/11890997.html