python 运行脚本路径_如何知道Python中运行脚本的路径?

my script.py在脚本所在的目录中创建一个临时文件。

运行时:

python script.py

它只起作用文件

但当你跑步时,它不起作用:

python /path/to/script.py

这是因为我使用的是script.py中临时文件的相对路径,而不是绝对路径。问题是我不知道它会在哪条路径上运行,所以我需要一种方法来常规地了解这一点。

怎么样?

os.path.abspath(os.path.dirname(__file__))

根据Python的伟大潜入:

import sys, os

print 'sys.argv[0] =', sys.argv[0]             1

pathname = os.path.dirname(sys.argv[0])        2

print 'path =', pathname

print 'full path =', os.path.abspath(pathname)

那么os.path.abspath(os.path.dirname(uu file_uuuuu))呢?

我听说__file__不适用于Mac电脑。

另一个很好的答案也解释了为什么__file__不是你想要的:__file__是当前执行文件(脚本或模块)的路径。如果从脚本访问该脚本,则意外地与该脚本相同。

目前的两个答案反映了你问题的模糊性。

运行python /path/to/script.py后,您希望将tempfile放在哪里?在当前目录(./tempfile.txt或/path/to/tempfile.txt中?

如果是前者,您可以简单地使用相对路径(或者,出于奇怪和神秘的目的,使用os.getcwd获得与当前目录等效的绝对路径,如@desintegr建议的那样)。

如果是后者,您可以像@jonathan建议的那样,准确地了解脚本是如何使用sys.argv[0]调用的,并使用os.path中的函数(当然,如果前者适用,您也可以将这些函数应用于os.getcwd返回的内容),或者使用os.path.dirname(__file__)等(如果需要,后者是必需的)当脚本作为模块导入时,后一种行为也会发生,而不仅仅是当它作为主脚本运行时)。

谢谢,我希望临时文件与script.py在同一目录中

@Juanjo,那么os.path.dirname(__file__)可能是最好的,你选择的答案是第二好的(因为它需要更多的import--sys--使用__file__--避免)。

您可以使用os.getcwd()方法了解当前工作目录。

Return a string representing the current working directory. Availability: Unix, Windows.

可以使用os.chdir(path)方法更改当前工作目录。

Change the current working directory to path. Availability: Unix, Windows.

这回答了一个与被问问题完全不同的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值