栈与模块

栈:先进后出
‘’’

使用栈来遍历目录

import os
def getstackdir(path):
mystack = [] # 创建栈
mystack.append(path) # 将根目录入栈
while mystack != []: # 判断栈是否为空
file_path = mystack.pop # 将栈中元素出栈
file_list = os.listdir(file_path) # 列举当前目录下的所有文件
for file_name in file_list: # 循环遍历
abspath = os.path.join(file_path,file_name) #获取绝对路径
if os.path.isdir(abspath): # 判断是否为目录
print(“目录”,file_name)
mystack.append(abspath) # 将目录进行入栈处理
else:
print(“文件”,file_name)

path = r"C:\Users\qf\PycharmProjects\untitled"
getstackdir(path)

‘’’
队列:先进先出
‘’’
import collections

queue = collections.deque()
queue.append(1)
queue.append(2)
queue.append(3)
print(queue.popleft())

使用队列来遍历目录

import os
import collections
def getmyque(path):
myque = collections.deque()
muque.append(path)
while myque != deque([]): # while myque:
file_path = myque.popleft()
file_list = os.lisrdir(file_path)
for file_name in file_list:
abspath = os.path.join(file_path,file_name)
is os.path.isdir(abspath):
print(“目录”,file_name)
myque.append(abspath)
else:
print(“文件”,file_name)

模块导入 *
from 模块名 import *

  • :代表导入模块中所有函数以及变量
    函数的引用
    函数名(参数列表)
    变量名
    注意:一般情况下,不建议使用[容易出现函数名重名的情形]

每个模块[.py文件]都有一个内置变量__name__,当程序在当前模块执行的时候
name__的值等于__main,当当前模块被其他模块引入的是它的等于该模块的模块名
一般情况下,我们会使用
if name == “main”:来作为程序的入口.

包:为了解决模块名的冲突,Python引入目录来组织模块的方法
每个包目录下都会包含一个__init__.py文件,这个文件必须存在.若不存在,
Python会将其当成一个普通目录,而不是一个包.init.py文件可以是一个空文件
也可以有内容.

自定义模块的时候,需要注意不能跟Python自带的模块名冲突
自定义模块取名的时候,可以使用多个单词拼接的方式

import sys
sys.argv 可以实现从程序外部向程序内部传递参数的过程,第一参数就是该模块的
模块名

#sys.platform 获取当前平台的执行环境

print(sys.path)

from PIL import Image
img = Image.open(“img04.jpg”)
print(img.format,img.size)
img.thumbnail((222,111))
img.save(“demo.jpg”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值