4

現在の作業ディレクトリを決定する必要がある Linux の Python スクリプトがあります。これを行うプログラムの部分は次のとおりです。

import os
cwd = os.getcwd()
print cwd

プログラムを実行すると、正しい答えが得られます。

/home/johny/LST/CT

しかし、crontab を使用して実行すると、次のようになります。

/home/johny

より深いフォルダに入れても同じパスになります。何が問題なのか誰か知っていますか?

4

2 に答える 2

5

crontab ファイルで次のようにします。

1 0 * * * cd /home/johny/LST/CT; python your_script.py
于 2013-02-15T00:57:05.570 に答える
3

cronはおそらく自分自身をホームディレクトリに設定するだけです。スクリプトを特定のディレクトリで実行する必要がある場合は、次のようなものを使用することを検討してください。

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

スクリプトの上部にありますが、実際にはスクリプトはどこから実行されるかを気にする必要はありません。スクリプト内のすべてのファイルパスは、次のようなものを使用して、スクリプトからの相対パスである必要があります。

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

mypath = os.path.join(scriptdir, 'data', 'mfile.dat')

... etc ...
于 2013-02-15T01:00:38.220 に答える