内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

Python的包(package)和模塊(module)介紹

Python的包(package)和模塊(module)

成都創(chuàng)新互聯(lián)公司專業(yè)提供德陽(yáng)服務(wù)器托管服務(wù),為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購(gòu)買德陽(yáng)服務(wù)器托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。

一、Python的包(package)

包:初期理解為文件夾,用于裝多個(gè)模塊

作用:一種管理Python模塊命名空間的形式,采用"點(diǎn)語(yǔ)法" os.path

包和文件夾之間的區(qū)別:Python的包中有一個(gè)特殊的文件__init__.py文件,前期里面不寫任何內(nèi)容,但是,就是為了告訴編譯器,當(dāng)前這個(gè)目錄不是普通目錄,是一個(gè)包

創(chuàng)建方式:選中工程,創(chuàng)建Python package(使用pycharm編輯器)

二、Python的模塊(module)

1.概述

為了解決維護(hù)問(wèn)題,一般情況下,在一個(gè)完整的項(xiàng)目中,會(huì)將特定的功能分組,分別放到不同的文件中,在使用的過(guò)程中,可以單獨(dú)維護(hù),各個(gè)不同的文件之間互不影響,每個(gè).py文件就被稱為一個(gè)模塊,通過(guò)結(jié)合包的使用來(lái)組織文件

封裝思路: 函數(shù) => 類 => 模塊 => 包 => 項(xiàng)目

優(yōu)點(diǎn):

a.提高了代碼的可維護(hù)性

b.提高了代碼的復(fù)用性【當(dāng)一個(gè)模塊被完成之后,可以在多個(gè)文件中使用】

c.引用其他的模塊【第三方模塊】

d.避免函數(shù)名和變量的命名沖突

2 os模塊

提供有關(guān)于操作系統(tǒng)的函數(shù),處理文件或者文件夾

**注意:**若path不是絕對(duì)路徑,則認(rèn)為是在當(dāng)前py文件的地址執(zhí)行相關(guān)操作

# os: operation system 操作系統(tǒng)

import os

print(os.name)

# nt--->windows

# posix --->Linux, MacOS

print(os.environ)

print(os.environ.get('PATH'))

# . 表示當(dāng)前目錄

# .. 表示上級(jí)目錄

print(os.curdir) # . 當(dāng)前目錄

# 當(dāng)前路徑

# 相對(duì)路徑:從當(dāng)前目錄(或者項(xiàng)目目錄)開(kāi)始的路徑

# 絕對(duì)路徑:從磁盤根目錄開(kāi)始的完整路徑

print(os.getcwd()) # C:\Users\75171\Desktop\Python2004\day11\code

# 后面的必須掌握

# listdir():獲取指定路徑下的所有文件或者目錄的名字,以列表形式展示

print(os.listdir(r'path'))

# mkdir():新建目錄

# os.mkdir('hello')

# os.makedirs('a/b/c') # 可以遞歸創(chuàng)建目錄

# 刪除目錄

# os.rmdir('hello')

# os.rmdir('a') # OSError: [WinError 145] 目錄不是空的。: 'a'

# 刪除文件

# os.remove('a.txt')

# 重命名

# os.rename('a','aaa')

# os.rename(r'aaa/b/a.txt','aaa/b/bbb.txt')

# 文件屬性

print(os.stat('aaa/b/bbb.txt'))

# os.path

# os.path.join():將多個(gè)路徑拼接

print(os.path.join(r'path2','name')) # 一般兩個(gè),也可以三個(gè)

# os.path.split():拆分

print(os.path.split(r'C:\Users\75171\Desktop\Python2004\day11\code\aaa'))

# 'C:\Users\75171\Desktop\Python2004\day11\code' 'aaa'

# os.path.splitext():將文件的名稱和擴(kuò)展名拆分

print(os.path.splitext('ccc.py')) # ('ccc', '.py')

# os.path.getsize():獲取文件大小

print(os.path.getsize('path')) # 1639

# os.path.abspath(): 獲取指定文件的絕對(duì)路徑

print(os.path.abspath('bbb.txt')) # C:\Users\75171\Desktop\Python2004\day11\code\bbb.txt

# __file__:當(dāng)前文件名

print(os.path.abspath(__file__)) # C:\Users\75171\Desktop\Python2004\day11\code\os.py

file_path = r'C:\Users\75171\Desktop\Python2004\day11\code\os.py'

dir_path = r'C:\Users\75171\Desktop\Python2004\day11\code'

# os.path.exist() :判斷文件或目錄是否存在

print(os.path.exists(file_path))

print(os.path.exists(dir_path))

# os.path.isfile():是否為文件

print(os.path.isfile(file_path)) # True

print(os.path.isfile(dir_path)) # False

# os.path.isdir():是否為文件

print(os.path.isdir(file_path)) # False

print(os.path.isdir(dir_path)) # True

# os.path.dirname():父目錄/上一級(jí)目錄

print(os.path.dirname(dir_path)) # C:\Users\75171\Desktop\Python2004\day11

# os.path.basename():文件名

print(os.path.basename(file_path)) # os.py

3.自定義模塊【掌握】

3.1自定義import模塊

#1.格式:import 包1.包2.模塊的名稱

#注意1:通過(guò)點(diǎn)語(yǔ)法區(qū)分包的層級(jí)關(guān)系

#引入模塊

#注意2:如果要同時(shí)導(dǎo)入多個(gè)模塊,有兩種方式

#方式一

"""

import os

import datetime

import math

"""

#方式二

import os,math,datetime

#注意3:當(dāng)導(dǎo)入自定義模塊的時(shí)候,需要注意包的存在

#注意5:當(dāng)通過(guò)import將模塊導(dǎo)入的時(shí)候,將模塊對(duì)應(yīng)的文件整個(gè)加載了一遍

import ccc.module

import moduleTextDemo01

print("***************")

#注意4:當(dāng)模塊有包的層級(jí)關(guān)系時(shí),需要調(diào)用其中函數(shù)的時(shí)候,需要指明函數(shù)的路徑

ccc.module.test() #os.path.isdir()

moduleTextDemo01.fun1()

moduleTextDemo01.fun2()

moduleTextDemo01.fun3()

print(moduleTextDemo01.num)

3.2自定義from-import模塊

#form 模塊名 import 函數(shù)名1/類名,函數(shù)名2.。。。

#import moduleTextDemo01

from moduleTextDemo01 import fun1,fun2,fun3

#注意:采用了form。。。import的方式導(dǎo)入指定的函數(shù)之后,可以直接調(diào)用函數(shù)

fun1()  鄭州去胎記醫(yī)院 http://www.zykdbhk.com/

fun2()

fun3()

#好處:進(jìn)行局部的導(dǎo)入,避免內(nèi)存空間的浪費(fèi)

#注意:當(dāng)前文件中如果存在和模塊中同名的函數(shù)的時(shí)候,當(dāng)前文件中的函數(shù)仍然會(huì)將模塊中的函數(shù)給覆蓋掉

def fun1():

print("hello")

fun1()

3.3自定義from-import*模塊

#from 。。。。 import * *代表全部

"""

下面三種導(dǎo)入方式完全等價(jià):將moduleTextDemo01模塊中的所有的內(nèi)容全部導(dǎo)入

from moduleTextDemo01 import *

import moduleTextDemo01

from moduleTextDemo01 import fun1,fun2,fun3

"""

from moduleTextDemo01 import *

fun1()

總結(jié):在python中,每個(gè)py文件其實(shí)都是一個(gè)模塊,如果跨模塊調(diào)用函數(shù),則采用導(dǎo)入的方式

將不同的功能進(jìn)行劃分,調(diào)用函數(shù)的時(shí)候相對(duì)比較方便的

4.__name__屬性和dir函數(shù)

__name__的作用:如果不想讓模塊中的某些代碼執(zhí)行,可以通過(guò)屬性僅僅調(diào)用程序中的一部分功能

【寫在if判斷中的代碼只有當(dāng)前模塊被執(zhí)行的時(shí)候才會(huì)被執(zhí)行,檢測(cè)到是其他的文件在使用當(dāng)前的模塊,則if語(yǔ)句中的代碼不會(huì)被執(zhí)行】

def fun1():

print("aaa")

def fun2():

print("bbb")

def fun3():

print("ccc")

#作用:寫在下面判斷中的代碼,只有當(dāng)前模塊運(yùn)行的時(shí)候才會(huì)被執(zhí)行【起到屏蔽的作用】,其他文件想import此文件,以下函數(shù)不會(huì)被執(zhí)行

if __name__ == "__main__":

fun1()

fun2()

fun3()

dir:獲取指定模塊里面的所有的內(nèi)容

dir(模塊名稱) 返回的是一個(gè)列表

print(dir(math))

print(dir(moduleTextDemo01))

文章名稱:Python的包(package)和模塊(module)介紹
路徑分享:http://www.rwnh.cn/article2/ghdiic.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、App設(shè)計(jì)、云服務(wù)器企業(yè)網(wǎng)站制作、App開(kāi)發(fā)網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)
乌兰察布市| 永安市| 绥江县| 绵竹市| 山阴县| 长宁县| 休宁县| 怀宁县| 县级市| 印江| 昌邑市| 武城县| 招远市| 金阳县| 庆云县| 九龙城区| 徐汇区| 内乡县| 长治县| 辉南县| 彰武县| 当涂县| 湄潭县| 彭泽县| 民乐县| 湖南省| 嘉鱼县| 遵义市| 汾阳市| 工布江达县| 云龙县| 石棉县| 宜君县| 华亭县| 商洛市| 精河县| 博爱县| 宣恩县| 永安市| 濉溪县| 连山|