Pythonでディレクトリ情報を変更するこのコードがあります。「/a/b/c」を「/x/b/c」に変更したいのですが。
import os
x = "/a/b/c"
y = x.split(os.sep)
y[1] = 'x'
os.sep.join(y)
Pythonがワンライナーにできるかどうか知りたいだけです。os.sep.join(x.split(os.sep)[1] = 'x')
構文エラーが発生するため、単純に使用できません。Pythonの他のオプションは何ですか?
Pythonでディレクトリ情報を変更するこのコードがあります。「/a/b/c」を「/x/b/c」に変更したいのですが。
import os
x = "/a/b/c"
y = x.split(os.sep)
y[1] = 'x'
os.sep.join(y)
Pythonがワンライナーにできるかどうか知りたいだけです。os.sep.join(x.split(os.sep)[1] = 'x')
構文エラーが発生するため、単純に使用できません。Pythonの他のオプションは何ですか?
os.sep.join('x' if idx == 1 else element
for idx, element in enumerate(x.split(os.sep)))
結果:
'/x/b/c'
説明:の各要素をそのインデックスとenumerate
ペアにします。1番目の要素の場合は要素を「x」に置き換え、それ以外の場合はそのままにします。x.split(os.sep)
'x' if idx == 1 else element
これはおそらくかなり非効率的です:
y = os.sep.join([x.split(os.sep)[0]] + ['x'] + x.split(os.sep)[2:])
これもうまくいくようです:
y = os.sep + 'x'+ x[2:]