划重点:
其中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 *
---------------------
 
参考链接:

python 导入同级目录文件、上级目录文件以及下级目录数据集和模块包的更多相关文章

  1. python 导入同级目录文件时报错

    当你import的时候,python解释器只会在sys.path这个变量(一个list,你可以print出来看)里面的路径中找可能匹配的package或module. 而一个package跟一个普通文 ...

  2. python 导入模块的坑。为什么整个项目能运行,单独运行某个文件模块就报错?多层目录不同文件夹怎么导入?

    一些文章介绍了python不同目录怎么导入问题,但py文件运行起点却从来没有文章说过!这是相当重要的!! 这个连接是网上99%的所讲的导入 https://www.cnblogs.com/luoye0 ...

  3. python导入上级目录中的模块

    python导入同级别模块很方便: import xxx 要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件 from dirname import xxx 要导入上级目录,可以 ...

  4. Python复制指定目录的各个子目录下的同名文件到指定文件夹并重命名

    Python复制指定目录的各个子目录下的同名文件到指定文件夹并重命名 #编码类型 #-*- coding: UTF-8 -*- #导入包 import os import shutil srcpath ...

  5. Python脚本:linux上将筛选的文件夹复制到另一个目录,保存目录结构以及文件和文件夹操作方法

    import os,shutil def newDir(dir_path): if not os.path.exists(dir_path): os.makedirs(dir_path) def co ...

  6. 【Python文件处理】递归批处理文件夹子目录内所有txt数据

    因为有个需求,需要处理文件夹内所有txt文件,将txt里面的数据筛选,重新存储. 虽然手工可以做,但想到了python一直主张的是自动化测试,就想试着写一个自动化处理数据的程序. 一.分析数据格式 需 ...

  7. 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本

    摘自:http://blog.csdn.net/forandever/article/details/5711319 一个获取指定目录下一定格式的文件名称和文件修改时间并保存为文件的python脚本 ...

  8. python实现查看目录下重复的文件

    该python 脚本有以下三个功能: 1. 实现查看目录下重复的文件,输出文件按修改时间升序排列 2. 将按修改时间排列比较旧的.可删除的文件列出来 3. 按目录对重复文件进行统计,比如,目录/tmp ...

  9. Python读取一个目录下的所有文件

    #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...

随机推荐

  1. PAT归纳总结——关于C++输入输出格式问题的一些总结

    自从使用了C++就不再想使用C语言来刷题了,C++便捷的输入输出方式,以及一些STL库函数的使用都要比使用C语言方便的多.但是使用的时候还有一些需要注意的地方,在这篇博客中写一下.(更好的教程可以参看 ...

  2. Android Hook学习之ptrace函数的使用

    Synopsis #include <sys/ptrace.h> long ptrace(enum __ptrace_request request, pid_t pid, void *a ...

  3. UVA10340子序列

    题意:       给你两个串,问你第二个第一个串是否是第一个串删除0个或多个字母得到的? 思路:       直接模拟就行了,在第二个串中去按顺序更新第一个串的下标,好像没说明白啊,不管了,水题,不 ...

  4. Word 通过添加Package 实现word藏毒

    这个思路要结合近期在一些安全网站上公布的姿势来实现,先科普几个地方. (1)通过cmd本身就可以直接下载: Bitsadmin /transfer AA /download /priority nor ...

  5. 【python】Leetcode每日一题-扰乱字符串

    [python]Leetcode每日一题-扰乱字符串 [题目描述] 使用下面描述的算法可以扰乱字符串 s 得到字符串 t : 如果字符串的长度为 1 ,算法停止 如果字符串的长度 > 1 ,执行 ...

  6. GUI简单实战——贪吃蛇

    将前面学到的GUI基础知识完成实战,完成一个简单的贪吃蛇项目 项目功能 用键盘上下左右实现贪吃蛇的自动移动 贪吃蛇吃到食物后,长度加一,分数加一 贪吃蛇吃到自己的身体,则游戏结束 按空格键实现游戏的暂 ...

  7. jpa模糊查询(表中的某些数据)

    业务代码 Controller @GetMapping({"/task/project"}) public ResponseEntity findByProjectTitle(@R ...

  8. big data-1

  9. 电脑进入bios和u盘启动快捷键

    参考:http://www.jb51.net/os/78638.html 一:联想系列 1:联想笔记本电脑 Thinkpad idea 520  :关机状态下,在左下角用回形针捅小孔,知道出现bios ...

  10. Java_常用类API之一

    Math类 Math类中包含一些对数据进行数学运算的方法,而该类中的方法全都是静态的.像这样的类称之为工具类. 1 public static int abs(int a) 2 对一个数据求绝对值 3 ...