『壹』 python怎麼導入文件
Python的import包含文件功能就跟php的include類似,但更確切的說應該更像是PHP中的require,因為Python里的import只要目標不存在就報錯程序無法往下執行。要包含目錄里的文件,PHP中只需要給對路徑就OK。Python中則不同,下面來看看這個例子。
目錄結構:
重新執行a.py,一切OK!
『貳』 python form import導入另一個py文件
python導入另一py腳本文件,例如導入xxx.py,命令是from xxx import *;
這個命令得在xxx.py在pythonpath里的時候才有用,或者是和當前在運行的python腳本在同一目錄之下。
『叄』 詳解Python中import方法引入模塊
在python用import或者from...import或者from...import...as...來導入相應的模塊,作用和使用方法與C語言的include頭文件類似。其實就是引入某些成熟的函數庫和成熟的方法,避免重復造輪子,提高開發速度。
python的import方法可以引入系統的模塊,也可以引入我們自己寫好的共用模塊,這點和php非常相似,但是它們的具體細節還不是很一樣。因為php是在引入的時候指明引入文件的具體路徑,而python中不能夠寫文件路徑進行引入。
下面總結一下import的幾種情況:
python包含子目錄中的模塊方法比較簡單,關鍵是能夠在sys.path裡面找到通向模塊文件的路徑。
下面將具體介紹幾種常用情況:
(1)主程序與模塊程序在同一目錄下:
如下面程序結構:
`-- src
|-- mod1.py
`-- test1.py
若在程序test1.py中導入模塊mod1, 則直接使用import mod1或from mod1 import *;
(2)主程序所在目錄是模塊所在目錄的父(或祖輩)目錄
如下面程序結構:
`-- src
|-- mod1.py
|-- mod2
| `-- mod2.py
`-- test1.py
若在程序test1.py中導入模塊mod2, 需要在mod2文件夾中建立空文件__init__.py文件(也可以在該文件中自定義輸出模塊介面); 然後使用 from mod2.mod2 import * 或import mod2.mod2.
(3)主程序導入上層目錄中模塊或其他目錄(平級)下的模塊
如下面程序結構:
`-- src
|-- mod1.py
|-- mod2
| `-- mod2.py
|-- sub
| `-- test2.py
`-- test1.py
若在程序test2.py中導入模塊mod1和mod2。首先需要在mod2下建立__init__.py文件(同(2)),src下不必建立該文件。然後調用方式如下:
下面程序執行方式均在程序文件所在目錄下執行,如test2.py是在cd sub;之後執行python test2.py
而test1.py是在cd src;之後執行python test1.py; 不保證在src目錄下執行python sub/test2.py成功。
import sys
sys.path.append("..")
import mod1
import mod2.mod2
『肆』 python中需要引用文件名稱在哪
第一種:os.listdir
os.listdir() 方法用於返回指定的目錄下包含的文件或子目錄的名字的列表。這個列表以字母順序。其得到的是僅當前路徑下的文件名,不包括子目錄中的文件,如果需要得到所有文件需要遞歸。 它也不包括 '.' 和 '..' 即使它在目錄中。
語法格式為:os.listdir(path)
舉例:def list_dir(file_dir):
'''
通過 listdir 得到的是僅當前路徑下的文件名,不包括子目錄中的文件,如果需要得到所有文件需要遞歸
'''
print'\n\n<><><><><><> listdir <><><><><><>'
print "current dir : {0}".format(file_dir)
dir_list = os.listdir(file_dir)
for cur_file in dir_list:
# 獲取文件的絕對路徑
path = os.path.join(file_dir, cur_file)
if os.path.isfile(path): # 判斷是否是文件還是目錄需要用絕對路徑
print "{0} : is file!".format(cur_file)
if os.path.isdir(path):
print "{0} : is dir!".format(cur_file)
list_dir(path) # 遞歸子目錄
第二種:os.walk
os.walk() 方法用於通過在目錄樹中遊走輸出在目錄中的文件名,向上或者向下。是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。
語法格式為:os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
方法參數說明:top:要遍歷的目錄的路徑
topdown:可選,如果為 True,則優先遍歷 top 目錄,以及 top 目錄下的每一個子目錄,否則優先遍歷 top 的子目錄,默認為 True
onerror: 可選, 需要一個 callable 對象,當 walk 異常時調用
followlinks:可選, 如果為 True,則會遍歷目錄下的快捷方式(linux 下是 symbolic link)實際所指的目錄,默認為 False
args:包含那些沒有 '-' 或 '--' 的參數列表
返回值: 三元組 (root, dirs, files)
root :所指的是當前正在遍歷的目錄的地址
dirs :當前文件夾中所有目錄名字的 list (不包括子目錄)
files :當前文件夾中所有的文件 (不包括子目錄中的文件)
舉例:def work_dir(file_dir):
print'\n\n<><><><><> work dir <><><><><>'
for root, dirs, files in os.walk(file_dir):
print'\n========================================'
print "root : {0}".format(root)
print "dirs : {0}".format(dirs)
print "files : {0}".format(files)
for file in files:
try:
print'-----------------------------------'
file_name = os.path.splitext(file)[0]
file_suffix = os.path.splitext(file)[1]
file_path = os.path.join(root, file)
file_abs_path = os.path.abspath(file)
file_parent = os.path.dirname(file_path)
print "file : {0}".format(file)
print "file_name : {0}".format(file_name)
print "file_suffix : {0}".format(file_suffix)
print "file_path : {0}".format(file_path)
print "file_abs_path : {0}".format(file_abs_path)
print "file_parent : {0}".format(file_parent)
except Exception, e:
print "Exception", e
找到文件目錄,對於Python初學者來說算是一個簡單操作了,希望本文能對Python小白有所幫助。
『伍』 python中怎麼導入文件夾路徑
可以直接通過pycharm來修改import的路徑,具體pycharm版本不一樣,對應按鈕位置不一樣,因此僅以文字說明。
file->Settings(Ctrl+Shift+s)->Project Setting->Project Interpreter->選擇本機的python版本->Interpreter Path->添加。
如果在tests下有文件夾test2,其下有文件c.py。要引用c文件的c2
在你的main.py裡面加入:
from test2.c import c2
路徑是以添加的路徑的相對路徑。
『陸』 python怎麼導入txt文件
直接用open函數就可以了,參數是帶路徑的文件名,和打開模式(此處省略,默認為r),不知道你說的是不是這種導入
f=open('d:/test.txt')
for
i
in
f:
print
i
『柒』 python 怎麼引入上上級目錄的文件
python導入同級別模塊很方便:
import xxx
要導入下級目錄頁挺方便,需要在下級目錄中寫一個__init__.py文件
from dirname import xxx
要導入上級目錄,可以使用sys.path:
首先sys.path的作用是:當使用import語句導入模塊時,解釋器會搜索當前模塊所在目錄以及sys.path指定的路徑去找需要import的模塊
所以改變思路,直接把上級目錄加到sys.path里:sys.path.append('../')
from fatherdirname import xxx
『捌』 python如何引用文件
with open('file','r') as f:
『玖』 python 怎麼引用其他文件的類
在導入文件的時候,Python只搜索當前腳本所在的目錄,載入(entry-point)入口腳本運行目錄和sys.path中包含的路徑例如包的安裝地址。所以如果要在當前腳本引用其他文件,除了將文件放在和腳本同一目錄下,還有以下幾種方法,
1. 將文件所在位置添加到sys.path中
import sys
sys.path.insert(0, '/path/to/application/app/folder') # or sys.path.append('/path/to/application/app/folder')
import file
2. 在文件目錄下新建__init__.py文件然後調用文件
from application.app.folder.file import func_name
init.py文件
a).init.py文件的作用
該文件的主要作用使初始化Python包。如果目錄下麵包含了該文件,Python解釋器就會將該目錄當做一個包,下一步就可以使用import語句在別的.py腳本中引用該目錄下的文件。一個標准Python模塊的結構如下所示:
package/
__init__.py
file.py
file2.py
subpackage/
__init__.py
submole1.py
submole2.py
b). __init__文件可以為空但可以用來建立對包的需求。一般來說會在該文件中寫那些類,函數等需要被導入到包水平,從而可以被方便的引用。比如:如果file.py文件中有一個File類,在init.py文件中啥都沒寫時引用File類需要這樣操作:
from package.file import File
如果在__init__.py文件中將file導入包,那就在包水平可以直接引用File類:
# in your __init__.py
from file import File
# in your script
from package import File
此外,還需要注意的一點是__init__.py文件中的all變數。如果解釋器在__init__.py文件中觀察到了__all__變數,那麼在運行from package import *時就只會引入__all__變數中列出的那些模塊。例如:如果想在上述結構的只引入submole1模塊,那麼可以在subpackage/__init__.py文件中定義__all__ = ['submole1'],當引用subpackage時from subpackage import *就只引入了submole1模塊。
3. 將文件所在目錄添加到python的環境變數
export PYTHONPATH=$HOME/pathToYourScripts/:$PYTHONPATH
『拾』 如何將模板文檔導入python並創建
模板文檔導入python並創建的方法如下:
1.1 需要導入的模板在同一文件夾中
比如admin.py調用test.py模板,可以在admin.py中直接執行
因為python解釋器查找模塊時會找同一文件夾,所以不用導入路徑名。
1.2 需要導入的模板在當前文件夾的子文件夾中
比如 manage.py調用setting.py模板,可以在manage.py中直接執行
無需加其他路徑說明,因為 crm 也是一個模塊(模塊的集合)。
1.3 需要導入的模板在父文件夾中
比如admin.py想調用surround.py模板(在admin.py父文件夾project下),因為解釋器找模塊只會去本文件夾及本文件夾的子文件夾去找,不會去父文件夾找,為什麼?試試看,先在admin.py中執行
當一個的模塊被導入的時候,解釋器首先尋找具有該名稱的內置模塊。如果沒有找到,然後解釋器從 sys.path 變數給出的目錄列表裡尋找該模板。所以輸出結果可以看到是一個路徑列表,其它路徑不需要看,只看第一項
說明解釋器就是從 pro文件夾開始往下找,而surround.py是在 project/crm文件夾下,顯然是找不到的。解決方法,在admin.py中執行手動把相應的路徑添加到 sys.path 中就可以了,這樣導入就相當於可以從添加的相應路徑開始往下找模塊了。可以找到,結果也不會報錯。