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)
説明
-
os.path.basename(image_path):- これを使うことで、与えられたパスからファイル名部分だけを取得できます。これにより、WindowsやLinuxなどのプラットフォームに依存しないコードが書けます。
-
extract_title_parts(filename):- この関数はファイル名からタイトルを抽出します。例として、
_でスプリットし、最後の部分を除去してタイトルとしています。
- この関数はファイル名からタイトルを抽出します。例として、
-
translate_text(text, dest='ja'):- Googletransを使ってテキストを翻訳します。エラーが発生した場合に備え、例外処理を行っています。
-
upload_image(image_path):- 画像をアップロードするための関数です。ここでは例として、固定のIDとURLを返すようにしています。実際の実装に応じて適宜変更してください。
これで、WindowsでもLinuxでも同じようにファイル名を取得し、タイトルを抽出して翻訳することができます。

ディスカッション
コメント一覧
まだ、コメントがありません