相关疑难解决方法(0)

如何获取当前正在执行的文件的路径和名称?

我有脚本调用其他脚本文件,但我需要获取当前在该进程中运行的文件的文件路径.

例如,假设我有三个文件.使用execfile:

  • script_1.py电话script_2.py.
  • 反过来,script_2.py打电话script_3.py.

我怎样才能获得的文件名和路径script_3.py,从内部代码script_3.py,而无需从传递这些信息作为参数script_2.py

(执行os.getcwd()返回原始起始脚本的文件路径而不是当前文件的.)

python scripting file

462
推荐指数
16
解决办法
51万
查看次数

如何在与Python脚本相同的目录中可靠地打开文件

我曾经只是使用像这样的命令打开与当前运行的Python脚本位于同一目录中的文件

open("Some file.txt", "r")
Run Code Online (Sandbox Code Playgroud)

但是,我发现当脚本在Windows中通过双击运行时,它会尝试从错误的目录中打开该文件.

从那以后我使用了表格的命令

open(os.path.join(sys.path[0], "Some file.txt"), "r")
Run Code Online (Sandbox Code Playgroud)

每当我想打开一个文件.这适用于我的特定用法,但我不确定是否sys.path[0]可能在其他一些用例中失败.

所以我的问题是:打开与当前运行的Python脚本位于同一目录中的文件的最佳和最可靠的方法是什么?

这是我到目前为止能够弄清楚的:

  • os.getcwd()os.path.abspath('')返回"当前工作目录",而不是脚本目录.

  • os.path.dirname(sys.argv[0])os.path.dirname(__file__)返回用于调用脚本的路径,该路径可能是相对的,甚至是空白的(如果脚本在cwd中).此外,__file__当脚本在IDLE或PythonWin中运行时不存在.

  • sys.path[0]并且os.path.abspath(os.path.dirname(sys.argv[0]))似乎返回脚本目录.我不确定这两者之间是否有任何区别.

编辑:

我刚刚意识到我想做的事情会更好地描述为"在与包含模块相同的目录中打开一个文件".换句话说,如果我导入了一个我在另一个目录中编写的模块,并且该模块打开了一个文件,我希望它在模块的目录中查找该文件.我认为我发现的任何东西都不能做到这一点......

python directory

138
推荐指数
4
解决办法
12万
查看次数

如何从Python包中读取(静态)文件?

你能告诉我如何读取Python包中的文件?

我的情况

我加载的包有许多我想从程序中加载的模板(用作字符串的文本文件).但是如何指定此类文件的路径?

想象一下,我想从以下位置读取文件:

package\templates\temp_file
Run Code Online (Sandbox Code Playgroud)

某种路径操纵?包基路径跟踪?

python file package

75
推荐指数
5
解决办法
3万
查看次数

Python函数将秒转换为分钟,小时和天

问题:编写一个要求用户输入秒数的程序,其工作方式如下:

  • 一分钟内有60秒.如果用户输入的秒数大于或等于60,则程序应显示该秒数的分钟数.

  • 一小时有3600秒.如果用户输入的秒数大于或等于3600,程序应显示该秒数的小时数.

  • 一天有86400秒.如果用户输入的秒数大于或等于86400,则程序应显示该秒数的天数.

到目前为止我所拥有的:

def time():
    sec = int( input ('Enter the number of seconds:'.strip())
    if sec <= 60:
        minutes = sec // 60
        print('The number of minutes is {0:.2f}'.format(minutes)) 
    if sec (<= 3600):
        hours = sec // 3600
        print('The number of minutes is {0:.2f}'.format(hours))
    if sec <= 86400:
        days = sec // 86400
        print('The number of minutes is {0:.2f}'.format(days))
    return
Run Code Online (Sandbox Code Playgroud)

python

33
推荐指数
7
解决办法
14万
查看次数

标签 统计

python ×4

file ×2

directory ×1

package ×1

scripting ×1