7

Linux デスクトップの「test」というディレクトリ内に、次の Python スクリプトがあります。

#!/usr/bin/python

f = open('test.txt','w')
f.write('testing the script')

っていうことは/Home/Desktop/test/script.py

ディレクトリ内に移動して入力すると、正常に./script.py機能し、test.txt ファイルが作成されます。

しかし、何らかの理由で、デスクトップからスクリプトを実行できません ( /Home/Desktop)。./test/script.pyたとえば、試してみましたが、うまくいきませんでした。

スクリプトのファイル権限は755で、ディレクトリは777です。

どんな助けでも大歓迎です。

4

5 に答える 5

18

とを使用os.path.dirname()__file__て、次のような絶対パスを取得できます。

#!/usr/bin/python

import os  # We need this module

# Get path of the current dir, then use it to create paths:
CURRENT_DIR = os.path.dirname(__file__)
file_path = os.path.join(CURRENT_DIR, 'test.txt')

# Then work using the absolute paths:
f = open(file_path,'w')
f.write('testing the script')

このようにして、スクリプトは、スクリプトを実行する場所に関係なく、スクリプトと同じディレクトリに配置されたファイルに対してのみ機能します。

于 2012-10-08T23:54:08.693 に答える
1

あなたのopen('test.txt', 'w')プットopen(r'./test.txt', 'w')で。実行するときは、「python」を使用してscript.pyください。それが機能するかどうかを確認してください。

于 2012-10-08T23:49:50.460 に答える
1

cwd が/Desktop/testで、次に を実行しようとする./test/script.pyと、 でスクリプトを実行しようとしています/Desktop/test/test/script.py。おそらく、やりたかっただけです./script.py

余談ですが、単に「機能しませんでした」と言うよりも、コマンド ラインから取得したエラー メッセージを提供していれば、質問はより役に立ちました。

スクリプトが実行されていて、コンソールに何も表示されない場合、スクリプトは機能している可能性があります。ファイルを「w」モードで開くと、ファイルが切り捨てられることに注意してください。多分あなたは+を使いたいですか?

于 2012-10-08T23:55:29.840 に答える
0

「など」はあまり意味がありません。

ファイルシステムのどこにいますか?あなたの場所に対するテストディレクトリの相対的な位置は何ですか?

完全に修飾されたパスを試しましたか?例えば、

/home/daniel/test/script.py
于 2012-10-08T23:48:41.517 に答える
0

どのディレクトリで実行していますか? 以下を使用してみてください:

import os

print os.getcwd()

作業ディレクトリがあなたが思っているものであることを確認します。

于 2012-10-08T23:51:56.100 に答える