How to know the path of the running script in Python?

后端 未结 3 1391
温柔的废话
温柔的废话 2020-12-11 08:26

My script.py creates a temporary file in the same dir as the script.

When running it:

python script.py

it works just file

b

相关标签:
3条回答
  • 2020-12-11 08:53

    Per the great Dive Into 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)
    
    0 讨论(0)
  • 2020-12-11 09:05

    The two current answers reflect the ambiguity of your question.

    When you've run python /path/to/script.py, where do you want your tempfile? In the current directory (./tempfile.txt) or in /path/to/tempfile.txt?

    If the former, you can simply use the relative path (or, for weird and arcane purposes, get the absolute path equivalent to the current directory as @Desintegr suggests, with os.getcwd).

    If the latter, you can learn exactly how the script was invoked with sys.argv[0], as @Jonathan suggests, and manipulate that path with the functions in os.path (of course you can also apply those functions to what os.getcwd returns, if the former case applies), or work with os.path.dirname(__file__) and the like (the latter's necessary if you want this latter behavior also when the script is imported as a module, not just when it's run as a main script).

    0 讨论(0)
  • 2020-12-11 09:05

    You can use the os.getcwd() method to know the current working directory.

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

    You can use the os.chdir(path) method to change the current working directory.

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

    0 讨论(0)
提交回复
热议问题