1

基本的に、プログラムと同じフォルダ内にあるフォルダ内のテキストファイルを開く簡単な方法を探しています。私のディレクトリ構造は次のようになります。

/programfolder/textfiles/textfile

そして、私は次のようにopenを使用しようとしています:

text=functionthatgetsfilename()
file=open("textfiles/"+text,"r")

私は何が間違っているのですか?どこかにタイプミスがありますか?

4

1 に答える 1

3

現在のディレクトリとスクリプトが存在するディレクトリの違いを知る必要があります。現在のディレクトリは、コマンドライン(CMD、SHなど)でアプリケーションを起動したディレクトリです。でそれを示すことができますos.path.normpath(os.curdir)

あなたの問題を解決するために、あなたは使うことができます

file=open(os.path.join(os.path.dirname(__file__),'holdstextfiles',text),'r')

また

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

最初の解決策は、目的のファイルへの絶対パスを使用します。これは、何があっても同じです。絶対パスです

2番目の解決策は、使用している相対パスを使用する前に、現在のディレクトリを変更します。

于 2013-02-26T18:06:06.470 に答える