0

したがって、別のディレクトリ内のファイルに出力する必要があるスクリプトがあります。私はその絶対パスを与えますが、Pythonはそれを好きではありません。

ファイルの場所は次のとおりです。 C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt

(長いパスですが、QTプロッターはファイル名を非常に長くします)

私が入力した:

textfile = open('C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt', 'w')

そして、私はこのエラーを受け取ります:

IOError: [Errno 22] invalid mode ('w') or filename:

相対パスを使用できることを読みましたが、非常に多くのディレクトリを通過する相対パスを指定する方法がわかりません。

ありがとう!

4

2 に答える 2

3

問題は、python がパス内のバックスラッシュをエスケープ シーケンスとして解釈していることです。

>>> 'C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt'
'C:\\Users\\Owner\\Documents\\Senior_design\\QT_Library\x08uild-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt'

\bとの両方\nが別のものに変換されることに注意してください。代わりに「生の」文字列を使用します。

>>> r'C:\Users\Owner\Documents\Senior_design\QT_Library\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\numbers.txt'
'C:\\Users\\Owner\\Documents\\Senior_design\\QT_Library\\build-TransmitterPlot-Desktop_Qt_5_0_2_MSVC2010_32bit-Debug\\numbers.txt'
于 2013-04-18T15:11:40.843 に答える
1

ここでのこの回答が役立つと思います。

基本的に、バックスラッシュが問題を引き起こしています。

于 2013-04-18T15:10:18.383 に答える