1. ホーム
  2. python

変数から生の文字列を表示しますか?(回答が得られません)

2023-10-05 08:33:07

質問

変数から生の形式で文字列を表示する方法を見つけようとしています。たとえば、Windows にパスの環境変数を追加した場合、それは次のようになります。 'C:\\Windows\Users\alexb\' , ができることを知っています。

print(r'C:\\Windows\Users\alexb\')

しかし、私は r を変数の前に置くことはできません...例えば

test = 'C:\\Windows\Users\alexb\'
print(rtest)

を表示しようとするだけです。 rtest .

があることも知っています。

test = 'C:\\Windows\Users\alexb\'
print(repr(test))

しかし、これは 'C:\\Windows\\Users\x07lexb' と同じように

test = 'C:\\Windows\Users\alexb\'
print(test.encode('string-escape'))

そこで、そのパスを保持する変数に、testを使用したままRAWを印刷させるエレガントな方法はないものかと考えています。もしそれが単に

print(raw(test))

しかし、それは

どのように解決するのですか?

私は同じような問題を持っていたし、この質問につまずくと、ニック-オルソン-ハリスのおかげで知っている。 答え のおかげで、解決策が文字列を変更することにあることを知りました。

2つの解決方法があります。

  1. Pythonのネイティブ関数を使って欲しいパスを取得する、例:。

    test = os.getcwd() # In case the path in question is your current directory
    print(repr(test))
    
    

    これにより、プラットフォーム非依存となり、現在では .encode . もしこれがあなたにとってオプションであるなら、よりエレガントな解決策です。

  2. 文字列がパスでない場合、pythonの文字列と互換性のある方法で、この場合はバックスラッシュをエスケープすることによって、それを定義します。

    test = 'C:\\Windows\\Users\\alexb\\'
    print(repr(test))