划重點:
其中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 *
---------------------
參考鏈接: