file
  • python-3.x
  • 2012-03-02 9 views 2 likes 
    2

    こんにちは私は、最終的なスクリプトが別のマシンで実行されるため、ファイルの場所を変数として表現しようとしています。これは、私が得たエラーに続いて試したコードです。私には、Pythonがどのように "\"を追加しているのか、それが原因で問題になっているようです。その場合、どうすれば "\"を挿入しないのですか?ドキュメントからTypeError:無効なファイル:ファイル名を変数にしようとしたとき

    F = 'C:\Documents and Settings\myfile.txt','r' 
    f = open(F) 
    

    とエラー

    TypeError: invalid file: ('C:\\Documents and Settings\\myfile.txt', 'r') 
    

    答えて

    3

    >>> a = r'a\nb' 
    >>> print a 
    a\nb 
    

    またはこの:

    >>> a = 'a\nb' 
    >>> print a 
    a 
    b 
    

    は、あなたが期待するものを手に入れるために、あなたはこれを必要としますF.あなたが持っている方法'r'はpですファイル名の芸術ではありません。

    +0

    'r'を削除すると、あなたよりもそれが修正されました! – Surfcast23

    +0

    全く問題ありません! – moesef

    5

    ありがとう:

    F = r'C:\Documents and Settings\myfile.txt' 
    f = open(F, 'r') 
    
    0:

    はこれを試してみてください"二重のバックスラッシュ" について

    - あなたの文字列にバックスラッシュをエスケープするかr'string'を使用する必要があり、これを参照してください。

    例えばこれを試してみてください。代わりに変数を使用しての

    f=open('C:\Documents and Settings\myfile.txt','r') 
    

    を試してみてください

    >>> a = 'a\\nb' 
    >>> print a 
    a\nb 
    
    +0

    は、情報をありがとう! – Surfcast23

    +0

    確かに、助けてうれしい! –

    1

    代わりの/または\を書いて、あなたがこれを行う必要があります:それはお使いのOSに応じて/または\を使用するように

    import os 
    F = os.path.join(
        "C:", 
        os.path.join(
         "Documents and Settings", myfile.txt 
        ) 
    ) 
    f = open(f, 'r')` 
    

    を。

    (あなたがC:/を書く場合、それはあなたがWindows上でコードを実行したいわけでなければならないが...ハム...)

    関連する問題