一个小脚本遇到的问题之 Windows 命令行下的脚本执行

[size=11]
Windows 命令行下面执行python确实是个麻烦事,反正不方便。添加系统环境变量就不多说了。这里说一下python在命令行执行的时候的一些位置。
我这里遇到的问题就是:在之前的程序中,配置文件的路径是相对路径,当然放在一个目录下面啦。直接F5没错,但是在cmd下面就错了.No such file or directory.我都吐血了。
下面的内容参考了Stack Overflow上面的回答。具体地址为:[url]http://stackoverflow.com/a/12201952[/url]
然后查查呗,问问谷歌。原来是python找文件的时候不是从你的脚本所在的位置,而是从他自己的工作目录。可以用 os.getcwd() 查看现在的工作目录是哪里?所以最好的方法就是绝对路径,绝对无敌。不过如果你的文件又被你移来移去,那你就等死吧。
当然你如果很任性,那就使用 os.chdir() 来切换到你的配置文件所在的位置,然后一切就顺理成章了。

上面的没看懂?没关系,看看下面的你会发现我说得很明白了。
更详细的python脚本地址的获取。[url]http://www.elias.cn/Python/GetPythonPath?from=Develop.GetPythonPath[/url] 干货摘录如下:
[/size]

总之,举例来讲,os.getcwd()、sys.path[0] (sys.argv[0])和__file__的区别是这样的:
假设目录结构是:
C:\test
|
[dir] getpath
|
[file] path.py
[dir] sub
|
[file] sub_path.py
然后我们在C:\test下面执行python getpath/path.py,这时sub_path.py里面与各种用法对应的值其实是:
os.getcwd() “C:\test”,取的是起始执行目录
sys.path[0]或sys.argv[0] “C:\test\getpath”,取的是被初始执行的脚本的所在目录
os.path.split(os.path.realpath(__file__))[0] “C:\test\getpath\sub”,取的是__file__所在文件sub_path.py的所在目录
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值