teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.30%
Python 3.x

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

Q&A

解決済

2回答

2145閲覧

特定の文字列を含んだものを保存しようとするとOSError: [Errno 22] Invalid argumentと出る

nogisuki

総合スコア3

Python 3.x

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

0グッド

0クリップ

投稿2022/02/18 09:29

0

0

前提・実現したいこと

webサイトからスクレイピングして画像とタイトルを取得して、名前をタイトル.jpgのように保存したい。

しかし、特定の文字を含んだものだけがエラーが吐かれて保存できません。
推測ですが、パスと勘違いして処理されている事かと思います。

特定の文字列は以下になります。
"
*
顔文字など

発生している問題・エラーメッセージ

OSError: [Errno 22] Invalid argument: 'img/" KICK THE CRAFTY ".jpg'

該当のソースコード

python

1urllib.request.urlretrieve(img_link,'img/'+title+'.jpg')

試したこと

"を外すとKICK THE CRAFTYと問題なく保存されます。
ちなみにtitleはstrで保存されています。

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

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

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

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

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

guest

回答2

0

ベストアンサー

Windows OS の場合、ファイル名に使うことができない文字があります。以下はマイクロソフト社が公開しているドキュメントからの抜粋になります。

Naming Files, Paths, and Namespaces - Win32 apps | Microsoft Docs

Naming Conventions

The following fundamental rules enable applications to create and process valid names for files and directories, regardless of the file system:
:
Use any character in the current code page for a name, including Unicode characters and characters in the extended character set (128–255), except for the following:

The following reserved characters:

  • < (less than)
  • > (greater than)
  • : (colon)
  • " (double quote)
  • / (forward slash)
  • \ (backslash)
  • | (vertical bar or pipe)
  • ? (question mark)
  • * (asterisk)

           :

投稿2022/02/18 10:32

melian

総合スコア21234

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

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

nogisuki

2022/02/18 12:40

ご丁寧にありがとうございます! ファイル名に使えない文字があるなんて思いもしませんでした。 置換で保存することにしました!
guest

0

ファイル名に使えない文字、でぐぐってみよう

投稿2022/02/18 10:08

y_waiwai

総合スコア88173

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問