🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

628閲覧

Pythonのos関数内でエスケープ文字が使えない

kalon

総合スコア198

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/12/09 07:46

皆様いつもお世話になっております。

環境は
Python Python 3.6.5
mpg123 version 1.25.10
です。

pathlibを使って絶対パスを取得し、os関数内でファイルパスを連結して、mpg123にエスケープ文字とファイル名を含めた絶対パスを引数として渡したいのですが、エスケープ文字が反映されません。

試したのは

python

1import os 2import pathlib 3 4currnet_dir = pathlib.Path(__file__).resolve().parent 5os.system("mpg123 " + str(currnet_dir) + "\" + "airplane_ping.mp3")

python

1import os 2import pathlib 3 4currnet_dir = pathlib.Path(__file__).resolve().parent 5os.system("mpg123 " + str(currnet_dir) + "\airplane_ping.mp3")

ですが、両方とも

terminal

1error: Cannot open file /Users/a/Twit_chceckerairplane_ping.mp3: No such file or directory

というエラーが出てしまいます。どうしたらバックスラッシュが反映されるのでしょうか?

アドバイスとご教授のほどよろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

そもそもUNIX系の環境の一般的なパス区切りはスラッシュです。\にする意味はなく、素直に"/airplane_ping.mp3"を足せばよいかと思います。

os.path.joinpathlibでパスを結合することも可能です。

os.path --- 共通のパス名操作 — Python 3.8.0 ドキュメント
pathlib --- オブジェクト指向のファイルシステムパス — Python 3.8.0 ドキュメント

投稿2019/12/09 08:38

編集2019/12/09 08:38
hayataka2049

総合スコア30935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問