ファイルパスの最後のディレクトリの後にテキストファイルの名前を付けようとしています。私は、フォワードまたはバックスラッシュのどちらかを使用するOSのためにこの名前を得る必要があります。スラッシュファイルのパスには文字列split()メソッドを使用しましたが、バックスラッシュは使用しませんでした。また、バックスラッシュのディレクトリ名を表示しようとするとスラッシュは含まれません(おそらくエスケープシーケンスとして読み込まれます)。しかし、私がre.search()メソッドを使用すると、それでもスラッシュが見つかります。バックスラッシュにpython string split()を使用するには?
これを修正するにはどうすればよいですか?
を参照してください以下のコード:
import re
import sys
targetDirectory = sys.argv[1]
filePathDirectorySeparator = ''
usesForwardSlashSeparator = re.search('/', targetDirectory)
if(usesForwardSlashSeparator):
filePathDirectorySeparator = '/'
else:
filePathDirectorySeparator = '\\'
fileName = targetDirectory.split(filePathDirectorySeparator)[-1]
file = open(fileName, 'w+')
file.write('HELLO')
file.close()
リンクは私のコンソール出力(Iは、まだ明らかに画像を埋め込むことが許されていないよ...)
私はimgurにアップロードしたのでリンクが表示されません:http://imgur.com/a/ijLgK –
あなたのシェルがバックスラッシュを解釈していると思いますので、 sys.argv'をPythonで使用します。コマンドラインでエスケープできますか? – Blckknght
[os.path](https://docs.python.org/3/library/os.path.html)を見てください。また、Windowsのパスにスラッシュを使用することもできます。 –