python 導入同級目錄文件、上級目錄文件以及下級目錄數據集和模塊包


划重點:
其中dataset_path = ''表示在Python工作文件夾
dataset_path = '..'表示在Python工作文件夾的上級文件夾
dataset_path = '某某文件夾/'表示在Python工作文件夾的某個下級文件夾
 

Python 數據集的相對路徑/選擇上級文件夾

 
選取相對路徑關鍵在於兩行代碼
import os
dataset_path = ''
datafile2 = os.path.join(dataset_path, '跨境審核輔助表.xls')

關於具體使用:

import os
dataset_path = ''
datafile2 = os.path.join(dataset_path, '跨境審核輔助表.xls')
data.to_excel(datafile2)

以上代碼為在Python工作文件夾下直接輸出excel  跨境審核輔助表.xls

 

python import 同級目錄

 
pycharm不會將當前文件目錄自動加入自己的sourse_path。右鍵make_directory as-->Sources Root將當前工作的文件夾加入source_path就可以了。
還有一點:models加一個點,表示同級目錄。from .models import classN
import功能實際應用還有很多坑:
比如,不通過模塊名字,直接引入模塊內的類
我們創建一個包叫ccc,然后下面的init里面什么也沒寫,都是空的
然后bbb.by里面的內容是:
def a():    
    print (1)

如果你要訪問這個函數a

首先第一點,一個寫法:
from ccc.bbb import a ,注意,他只能通過 包名.模塊名來import具體函數
如果你直接用from ccc import a ,是會報警的,報警如下:
>>> from ccc import a
Traceback (most recent call last):
     File "<input>", line 1, in <module>
ImportError: cannot import name 'a'

 

其實,關鍵是,如果你要通過from ccc import a,重要的是init的內容
如果我們把init內容寫成下圖3
from .bbb import a,這里面的 .bbb是什么意思呢?就是在同級目錄下面的bbb模塊,如果前面是2個點,那就是上級目錄的bbb
 
現在,要講一個重要概念!!!
當你導入一個包的時候,實際上是導入了這個包的init.py的文件,所以,如果你在init里面寫入了其他的import功能,就等於是在初始化的時候幫忙導入了其他東西。
就比如下面的例子,他在導包的時候,就順便導入了a這個函數!!  
從這個話題引申到其他話題,我在做flask第一節課的時候一直無法理解,為什么from flask import Flask可以成功?
第一個flask是包,第二個Flask是類,但是,實際上這個Flask類是在flask包的目錄下app.py里面的。
所以后來我去看了flask包的init.py,原來在里面,他已經幫你導入了Flask類,所以你在導入flask包的時候,就已經可以直接導Flask類了
看到里面的 from .app import Flask, Request, Response
.app就表示了在flask包下,和init同級的app.py
 
 
 
————————————————————————————————————

python import 上級目錄

有時候我們可能需要import另一個路徑下的python文件,例如下面這個目錄結構,我們想要在_train.py里import在networks目錄下的_lstm.py和上級目錄下的_config.py。
 
_config.py
networks
    _lstm.py
    _cnn.py
pipelines
    _train.py

只需兩步操作

(1)在networks文件夾下創建空的__init__.py文件
 
_config.py
networks
    __init__.py
    _lstm.py
    _cnn.py
pipelines
    _train.py
 

 

(2)使用sys庫添加路徑
 
import sys
sys.path.append("..")
from networks._lstm import *
from _config import *

 

---------------------
 
參考鏈接:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM