欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python運(yùn)行或調(diào)用另一個(gè)py文件或參數(shù)方式

 更新時(shí)間:2022年08月26日 15:07:50   作者:SunseTor  
這篇文章主要介紹了python運(yùn)行或調(diào)用另一個(gè)py文件或參數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python運(yùn)行或調(diào)用另一個(gè)py文件或參數(shù)

1. 運(yùn)行另一個(gè)py文件

(1)在file_A.py中運(yùn)行file_B.py文件

import os
os.system("python file_B.py para_a1 para_a2")
#其他形式
os.system("python file_B.py %s" % para_A)
os.system("python file_B.py " + para_A)

需要注意文件路徑的寫(xiě)法,因?yàn)槲沂窃赿ocker中運(yùn)行文件,文件名前面需要加/,如os.system("python /file_B.py")

(2)file_B.py使用file_A.py傳遞的參數(shù)

import sys
print(sys.argv)
#由打印的結(jié)果可知,sys.argv[1:]是命令行傳遞的參數(shù),sys.argv[0]是命令行運(yùn)行的文件名
para_B = sys.argv[1]

2. 引用另一個(gè)py文件中的變量

from file_A import df_A

python調(diào)用自己寫(xiě)的py文件

python如何調(diào)用自己寫(xiě)的py文件呢?

同一個(gè)目錄下直接寫(xiě)import xx就好了,xx為自己要調(diào)用的模塊名字,雖然會(huì)有下劃線報(bào)錯(cuò),其實(shí),沒(méi)有錯(cuò),仍然可以調(diào)用,之前一直都被報(bào)錯(cuò)嚇住了

如果是不同目錄怎么調(diào)用呢?

那就把需要調(diào)用的那個(gè)目錄添加一下,比如調(diào)用C:\xxx\a.py

那就添加一下c:\xxx路徑(windows的路徑和linux的路徑符號(hào)不同\\,/,注意區(qū)別)

然后import a就行了,前面寫(xiě)r是為了告訴python這是路徑,別把\n等特殊組合給轉(zhuǎn)譯了,

如果同c:\xxx目錄下有多個(gè)文件,比如a.py,b.py等等,也可以直接導(dǎo)入了,因?yàn)檫@是告訴python去這個(gè)文件夾尋找包文件

import sys
sys.path.append(r"C:\xxx")
import a
import b

如果需要調(diào)用的多個(gè)文件在多個(gè)目錄呢?

當(dāng)然可以多次寫(xiě)sys.path.append(r"C:\xxx")來(lái)添加多個(gè)目錄,

但是這樣很麻煩,如果文件距離很近,比如這樣就沒(méi)有必要寫(xiě)

解決方法是添加一個(gè)空的__init__.py文件(用于定義包的屬性和方法,可以為空),表示這是一個(gè)包,比如這樣,聲明了aaa為一個(gè)包,a是內(nèi)部的方法

也可以這樣,表示bbb是一個(gè)包,bb是bbb的子包,b是bb包的內(nèi)部的方法

然后如果你需要調(diào)用a.py與b.py,就可以

testcode.py

import aaa.a
import bbb.bb.b
import ccc.c

如果你在c.py文件,想要調(diào)用a.py,b.py只需要用到步驟2的知識(shí)即可,比如

c.py

import sys
#添加上級(jí)目錄
sys.path.append("..//")
import aaa.a
import bbb.bb.b

關(guān)于__init__.py的解釋

作用是將文件夾變?yōu)橐粋€(gè)Python模塊,導(dǎo)入包時(shí),事實(shí)上是導(dǎo)入了它的__init__.py文件

__init__.py 文件可以為空,但是也可以添加如下兩個(gè)功能

1.初始化包中各個(gè)模塊,批量導(dǎo)入

pack包,配置__init__.py

 
import a
import b

導(dǎo)入pack包

訪問(wèn)__init__.py文件中的引用文件,需要加上包名

import pack
print(pack.a,pack.b)

2.__init__.py中的__all__,全部導(dǎo)入所聲明的模塊

此時(shí)導(dǎo)入pack包就相當(dāng)于導(dǎo)入了a.py,b.py,c.py

pack包,配置__init__.py

__all__ = ['a', 'b', 'c']

調(diào)用

from pack import *

關(guān)于sys.path的解釋

當(dāng)導(dǎo)入模塊時(shí),解釋器按照sys.path列表中的目錄順序來(lái)查找文件。

print(sys.path)

會(huì)打印出一個(gè)list列表,表示引入文件時(shí)查找的文件目錄,第一個(gè)元素空字符表示當(dāng)前目錄 

關(guān)于pyc與pyo文件

pyc就是py編譯時(shí)生成的字節(jié)碼文件,以后每次導(dǎo)入都會(huì)執(zhí)行pyc,當(dāng)py文件更新時(shí)pyc也會(huì)更新

如果解釋器添加-o命令,py編譯時(shí)會(huì)生成pyo文件,它相比pyc去掉了斷言(assert)、斷行號(hào)以及其他調(diào)試信息,運(yùn)行速度更快

如果使用-OO選項(xiàng),生成的pyo文件會(huì)忽略文檔信息

模塊導(dǎo)入時(shí)內(nèi)部的原理

import可導(dǎo)入的對(duì)象可以是以下類型:

  • 模塊文件(.py文件)
  • C或C++擴(kuò)展(已編譯為共享庫(kù)或DLL文件)
  • 包(包含多個(gè)模塊)
  • 內(nèi)建模塊(使用C編寫(xiě)并已鏈接到Python解釋器中)
  • 理解為后綴就是.py、.pyo、.pyc、.pyd、.so、.dll

解釋器工作:

1.根據(jù)導(dǎo)入的文件名創(chuàng)建命名空間(用來(lái)訪問(wèn)文件內(nèi)部屬性與方法)

2.在命名空間內(nèi)執(zhí)行源代碼

3.創(chuàng)建一個(gè)源代碼文件的對(duì)象,這個(gè)對(duì)象引用對(duì)應(yīng)的命名空間,管理模塊的內(nèi)部函數(shù)與變量

4.一個(gè)模塊可以多次導(dǎo)入,但是后面導(dǎo)入的模塊只執(zhí)行第三步

sys.modules可以打印出導(dǎo)入的模塊名與模塊對(duì)象的映射

因此可以理解導(dǎo)入文件的三種方式:

  • import a.b:把a(bǔ).b導(dǎo)入全局命名空間,想要調(diào)用c方法需要a.b.c
  • from a import b:把b導(dǎo)入全局命名空間,b.c
  • from a.b import c:把b的屬性c直接導(dǎo)入命名空間

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • django中F與Q查詢的使用

    django中F與Q查詢的使用

    一般查詢都是單條件查詢,F(xiàn)和Q是組合條件查詢,本文主要介紹了django中F與Q查詢的使用,感興趣的可以了解一下
    2021-06-06
  • django實(shí)現(xiàn)模板中的字符串文字和自動(dòng)轉(zhuǎn)義

    django實(shí)現(xiàn)模板中的字符串文字和自動(dòng)轉(zhuǎn)義

    這篇文章主要介紹了django實(shí)現(xiàn)模板中的字符串文字和自動(dòng)轉(zhuǎn)義,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • python打開(kāi)使用的方法

    python打開(kāi)使用的方法

    在本篇文章里小編給各位整理的是關(guān)于python怎么打開(kāi)使用的相關(guān)知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-09-09
  • Python pyinotify日志監(jiān)控系統(tǒng)處理日志的方法

    Python pyinotify日志監(jiān)控系統(tǒng)處理日志的方法

    這篇文章主要介紹了Python pyinotify日志監(jiān)控系統(tǒng)處理日志的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • python 詳解如何使用GPU大幅提高效率

    python 詳解如何使用GPU大幅提高效率

    CuPy是一個(gè)開(kāi)源矩陣庫(kù),使用NVIDIA CUDA加速。CuPy使用Python提供GPU加速計(jì)算。CUPY使用CUDA相關(guān)庫(kù),包括 CuBLAS、CUDNN、Curand、CuoSver、CuPaSeSE、Cufft和NCCL,以充分利用GPU架構(gòu)
    2021-11-11
  • Python方差特征過(guò)濾的實(shí)例分析

    Python方差特征過(guò)濾的實(shí)例分析

    在本篇文章里小編給大家整理了一篇關(guān)于Python方差特征過(guò)濾的實(shí)例分析內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-08-08
  • 使用wxpy實(shí)現(xiàn)自動(dòng)發(fā)送微信消息功能

    使用wxpy實(shí)現(xiàn)自動(dòng)發(fā)送微信消息功能

    這篇文章主要介紹了使用wxpy實(shí)現(xiàn)自動(dòng)發(fā)送微信消息功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Python中GIL的使用詳解

    Python中GIL的使用詳解

    GIL的全稱為Global Interpreter Lock,全局解釋器鎖。本篇文章詳細(xì)的介紹了Python中GIL的使用,有需要了解Python中GIL用法的朋友可參考。希望此文章對(duì)各位有所幫助
    2018-10-10
  • Python calendar日歷模塊的應(yīng)用案例演示

    Python calendar日歷模塊的應(yīng)用案例演示

    calendar模塊是python用來(lái)處理日歷的模塊,通過(guò)不同的api和格式輸出多種形式的日歷格式,下面就通過(guò)不同的api和參數(shù)來(lái)輸出和學(xué)習(xí)calendar模塊的用法
    2023-06-06
  • keras topN顯示,自編寫(xiě)代碼案例

    keras topN顯示,自編寫(xiě)代碼案例

    這篇文章主要介紹了keras topN顯示,自編寫(xiě)代碼案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07

最新評(píng)論