获取当前文件路径

testpath.py

import sys

print(sys.path)

[root@d mapReduceLog]# python testpath.py
['/data/mapReduceVisitorLog/mapReduceLog', '/root/anaconda3/lib/python35.zip', '/root/anaconda3/lib/python3.5', '/root/anaconda3/lib/python3.5/plat-linux', '/root/anaconda3/lib/python3.5/lib-dynload', '/root/anaconda3/lib/python3.5/site-packages', '/root/anaconda3/lib/python3.5/site-packages/Sphinx-1.4.6-py3.5.egg', '/root/anaconda3/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg']
[root@d mapReduceLog]# cd /
[root@d /]# python /data/mapReduceVisitorLog/mapReduceLog/testpath.py
['/data/mapReduceVisitorLog/mapReduceLog', '/root/anaconda3/lib/python35.zip', '/root/anaconda3/lib/python3.5', '/root/anaconda3/lib/python3.5/plat-linux', '/root/anaconda3/lib/python3.5/lib-dynload', '/root/anaconda3/lib/python3.5/site-packages', '/root/anaconda3/lib/python3.5/site-packages/Sphinx-1.4.6-py3.5.egg', '/root/anaconda3/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg']
[root@d /]# cd ~
[root@d ~]# python /data/mapReduceVisitorLog/mapReduceLog/testpath.py
['/data/mapReduceVisitorLog/mapReduceLog', '/root/anaconda3/lib/python35.zip', '/root/anaconda3/lib/python3.5', '/root/anaconda3/lib/python3.5/plat-linux', '/root/anaconda3/lib/python3.5/lib-dynload', '/root/anaconda3/lib/python3.5/site-packages', '/root/anaconda3/lib/python3.5/site-packages/Sphinx-1.4.6-py3.5.egg', '/root/anaconda3/lib/python3.5/site-packages/setuptools-27.2.0-py3.5.egg']
[root@d ~]#

当前文件路径

sys.path[0] 为绝对路径,与执行路径无关

获取输入,并对下一个脚本命令行传入参数,执行下一个脚本

D:\bizPythonDouban\onlinePolly\mapReduceLog\osSysInput.py

from tools import getNow
import os, sys

this_file_abs_path = sys.path[0]

sh_, nodes = 'ssh {} "scp /data/visitlog/{} root@d:/data/mapReduceVisitorLog/{}/"', ['a', 'b', 'c']

inputDate = sys.argv[0]
inputDate = inputDate.upper()

if inputDate == 'TODAY':
Ymd = '%Y-%m-%d'
today = getNow(format_=Ymd)
for i in nodes:
cmd_ = sh_.format(i, '*{}'.format(today), i)
print(cmd_)
os.system(cmd_)
cmd_ = 'python {}{}mapReduceBatchDeleteLoopDateSysInput.py {} {} '.format(this_file_abs_path, os.sep, today, today) # 对下一个脚本命令行传入参数
print(cmd_)
os.system(cmd_)

mapReduceBatchDeleteLoopDateSysInput.py
from tools import *
import math, sys

dateFrom, dateEnd = sys.argv[1], sys.argv[2]
mktimeFrom, mktimeEnd = date2mktime(dateFrom), date2mktime(dateEnd)
db_operation_step = 3000
print(mktimeFrom, mktimeEnd)

Python中import的用法 - 知乎
https://zhuanlan.zhihu.com/p/63143493

  • import module_name。即import后直接接模块名。在这种情况下,Python会在两个地方寻找这个模块,第一是sys.path(通过运行代码import sys; print(sys.path)查看),os这个模块所在的目录就在列表sys.path中,一般安装的Python库的目录都可以在sys.path中找到(前提是要将Python的安装目录添加到电脑的环境变量),所以对于安装好的库,我们直接import即可。第二个地方就是运行文件(这里是m1.py)所在的目录,因为m2.py和运行文件在同一目录下,所以上述写法没有问题。

用上述方法导入原有的sys.path中的库没有问题。但是,最好不要用上述方法导入同目录下的文件!因为这可能会出错。

故事是从这篇台湾同胞的博客(Python 的 Import 陷阱)开始的,然后又跳到了Python社区的PEP 328提案(PEP 328 -- Imports: Multi-Line and Absolute/Relative),再结合过去的经验以及一些测试,我想我大概懂了吧。下面是我的总结,希望内容能够言简意赅、易于理解。

Python中import的用法 - 知乎https://zhuanlan.zhihu.com/p/63143493

总结import语句的第二种用法:

  • from package_name import module_name。一般把模块组成的集合称为包(package)。与第一种写法类似,Python会在sys.path和运行文件目录这两个地方寻找包,然后导入包中名为module_name的模块。

获取当前文件路径 import 原理 一般把模块组成的集合称为包(package)的更多相关文章

  1. python获取当前文件路径

    python获取当前文件路径 学习了:https://www.cnblogs.com/strongYaYa/p/7200357.html https://blog.csdn.net/heatdeath ...

  2. java获取classpath文件路径空格转变成了转义字符%20的问题

    java获取classpath文件路径空格转变成了转义字符%20的问题 这个问题很纠结,服务器的文件路径带有空格,空格被转化是%20了,悲剧就出现了 下面展示一段代码String path = get ...

  3. 如何获取启动文件路径 GetModuleFileName

    如何获取启动文件路径 GetModuleFileName CString GetExeDirPath() { }; CString strExeDirPath; GetModuleFileName(N ...

  4. Atitit,通过pid获取进程文件路径 java php  c#.net版本大总结

    Atitit,通过pid获取进程文件路径 java php  c#.net版本大总结 1. 通过PID获取进程路径的几种方法2 1.1. GetModuleFileNameEx 想获得进程可执行文件的 ...

  5. Application.StartupPath获取执行文件路径substring()取特定长度字符串取得根目录

    Application.StartupPath获取执行文件路径substring()取特定长度字符串取得根目录 2012-07-20 10:48 257人阅读 评论(0) 收藏 举报 path usi ...

  6. java获取当前文件路径 [转]

    1.如何获得当前文件路径 常用: 字符串类型:System.getProperty("user.dir"); 综合: package com.zcjl.test.base; imp ...

  7. wpf 前台获取资源文件路径问题

    1 <ImageBrush ImageSource="YT.CM.CommonUI;component/Resource/FloadwindowImage/middle.png&quo ...

  8. iOS 根据文件名获取到文件路径

    根据文件名来获取文件路径(Document目录下) //根据文件名来获取文件路径 - (NSString *)dataFilePath:(NSString *)sender { NSArray *pa ...

  9. PHP获取当前文件路径信息的方法

    文件名  test.php 1.__FILE__ 获取 “路径 + 文件名” : /var/www/test/test.php  echo __FILE__; //取得当前文件的路径:用魔术常量 __ ...

随机推荐

  1. Word2Vec和LDA的区别与联系

    Word2vec是目前最常用的词嵌入模型之一.是一种浅层的神经网络模型,他有2种网络结构,分别是CBOW(continues bag of words)和 skip-gram.Word2vec 其实是 ...

  2. easyui框架 jsp页面

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  3. JAVA_JNI字段描述符“([Ljava/lang/String;)V”(Android)

    JNI字段描述符"([Ljava/lang/String;)V "([Ljava/lang/String;)V" 它是一种对函数返回值和参数的编码.这种编码叫做JNI字段 ...

  4. Ubuntu安装最新的SlickEdit软件--破解教程

    最近主要工作系统转到LInux上面来了,Slickedit的安装破解也费了些事,今天将过程整理一下做个记录. 说明:SlickEdit pro V21.03 Linux 64位实测可用,MAC实测可用 ...

  5. JavaDailyReports10_08

    ------------恢复内容开始------------ AWT组件 1.1Frame组件与Panel组件 1.1.1显示框架窗口 1 package awt; 2 3 import java.a ...

  6. 线程方法wait()和notify()的使用

    实现需求: 开启2个线程,1个线程对某个int类型成员变量加1,另外1个减1,但是要次序执行,即如果int型的成员变量是0,则输出01010101这样的结果 代码如下 1 package test; ...

  7. jquery-from+php 文件上传

    闲话不多说上代码 前端代码 <!DOCTYPE HTML> <html lang="zh-CN"> <head> <meta charse ...

  8. Windows搭建SkyWalking8.3环境进行JAVA应用性能监控及入门示例(使用Mysql持久化)

    下载SkyWalking 一.下载地址(点击) 选择tar 解压后进入config文件夹先配置一下Mysql数据源,打开application.yml文件 默认selector是h2我们改成mysql ...

  9. 你真会看idea中的Log吗?

    在项目中提交代码时,我们时常忘了自己是否已经update代码或者push代码了,或者以为自己push,但是别人说你的代码没push,其实可以通过idea的Log日志中查看,你会发现里面有三种颜色的标签 ...

  10. 【JDBC核心】获取数据库连接

    获取数据库连接 要素一:Driver 接口实现类 Driver 接口: java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提 ...