filename = image_path.split(r’\’)[-1] # Windowsパスの場合 windowsもlinuxも同じようにファイル名だけ取得できないかな

WindowsでもLinuxでも動作するように、os.pathモジュールを使ってファイル名を取得する方法があります。このモジュールはプラットフォームに依存しない方法でパス操作を行うために便利です。

以下のように os.path.basename を使ってファイル名を取得できます:

python
import os from googletrans import Translator def translate_text(text, dest='ja'): translator = Translator() try: result = translator.translate(text, dest=dest) return result.text except Exception as e: print(f"Translation failed: {e}") return None def extract_title_parts(filename): # 例としてのタイトル抽出ロジック parts = filename.rsplit('_', 1) title = ' '.join(parts[0].split()) return title def upload_image(image_path): # 例としての画像アップロードロジック # 実際の実装に応じて適宜変更 image_id = "example_id" image_url = "http://example.com/" + image_id return image_id, image_url def main(image_path): filename = os.path.basename(image_path) # ファイル名だけを取得 english_title = extract_title_parts(filename) japanese_title = translate_text(english_title) if japanese_title: print(f"Translated text: {japanese_title}") else: print("Failed to translate text.") # 画像をアップロード image_id, image_url = upload_image(image_path) # その他の処理... print(f"Image ID: {image_id}") print(f"Image URL: {image_url}") # 例としての画像パス image_path = "/home/share/scp_sakura_suruzo_data/Summer landscape illustration_20240618_225527.jpg" # Windowsの場合の例: image_path = "C:\Users\owner\Pictures\Summer landscape illustration_20240618_225527.jpg" # メイン関数を実行 main(image_path)

説明

  1. os.path.basename(image_path):

    • これを使うことで、与えられたパスからファイル名部分だけを取得できます。これにより、WindowsやLinuxなどのプラットフォームに依存しないコードが書けます。
  2. extract_title_parts(filename):

    • この関数はファイル名からタイトルを抽出します。例として、_ でスプリットし、最後の部分を除去してタイトルとしています。
  3. translate_text(text, dest='ja'):

    • Googletransを使ってテキストを翻訳します。エラーが発生した場合に備え、例外処理を行っています。
  4. upload_image(image_path):

    • 画像をアップロードするための関数です。ここでは例として、固定のIDとURLを返すようにしています。実際の実装に応じて適宜変更してください。

これで、WindowsでもLinuxでも同じようにファイル名を取得し、タイトルを抽出して翻訳することができます。

未分類

Posted by ぼっち