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

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

新規登録して質問してみよう
ただいま回答率
85.37%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

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

Q&A

解決済

3回答

62838閲覧

OSError: [Errno 22] Invalid argument の対処方法

yuuutaaa

総合スコア2

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python

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

0グッド

1クリップ

投稿2020/09/30 06:46

編集2020/10/01 02:42

OSError: [Errno 22] Invalid argument の対処方法が知りたいです。
初心者のため基本的な部分でのミスかもしれません。
いくらか検索しましたが、有用な対処方法が見つからなかったため、質問させていただきます。

PythonでVS Codeを利用して、エクセルからデータの読み込みをしようとしました。
エクセルの読み取り専用は解除してあります。
エクセルは作成時のままで、何の加工もしていません。

書いたコードとターミナルは以下の通りです。
白の塗つぶしはユーザー名です。
イメージ説明
イメージ説明
宜しくお願い致します。

python

1import openpyxl #PythonからExcelを操作 2import pandas as pd #データ解析を支援する機能を提供するPythonのライブラリ 3import glob #特定の条件に一致するファイル名を取得 4 5 6import_file_path='‪C:/Users/*******/Desktop/sample.xlsx' #ファイルのパスを作成 7excel_sheet_name='発注管理表' #編集したいシートを指定 8export_file_path='‪C:/Users/*******/Desktop/PYTHON/outoput' #ファイルのパスを作成 9 10df_order=pd.read_excel(import_file_path, sheet_name=excel_sheet_name) #Excelファイルの内容を読み込む 11 12company_name=df_order['会社名'].unique() #会社名をユニークにして取得 13 14for i in company_name: #フィルタリングして別ファイルに保存 15 print(i) 16

Terminal

1(base) PS C:\Users*******\Desktop\PYTHON> & C:/Users/*******/Anaconda3/python.exe c:/Users/*******/Desktop/PYTHON/EXCELsample.py 2Traceback (most recent call last): 3 File "c:/Users/*******/Desktop/PYTHON/EXCELsample.py", line 11, in <module> 4 df_order=pd.read_excel(import_file_path, sheet_name=excel_sheet_name) #Excelファイルの内容を読み込む 5 File "C:\Users*******\Anaconda3\lib\site-packages\pandas\io\excel\_base.py", line 304, in read_excel 6 io = ExcelFile(io, engine=engine) 7 File "C:\Users*******\Anaconda3\lib\site-packages\pandas\io\excel\_base.py", line 824, in __init__ 8 self._reader = self._engines[engine](self._io) 9 File "C:\Users*******\Anaconda3\lib\site-packages\pandas\io\excel\_xlrd.py", line 21, in __init__ 10 super().__init__(filepath_or_buffer) 11 File "C:\Users*******\Anaconda3\lib\site-packages\pandas\io\excel\_base.py", line 353, in __init__ 12 self.book = self.load_workbook(filepath_or_buffer) 13 File "C:\Users*******\Anaconda3\lib\site-packages\pandas\io\excel\_xlrd.py", line 36, in load_workbook 14 return open_workbook(filepath_or_buffer) 15 File "C:\Users*******\Anaconda3\lib\site-packages\xlrd\__init__.py", line 111, in open_workbook 16 with open(filename, "rb") as f: 17OSError: [Errno 22] Invalid argument: '\u202aC:/Users/K2020019/Desktop/sample.xlsx'

追記
Macで同様にやってみたところ、エラーが出ずに処理できました。
rawを使っても同様のエラーが起こります。

自己解決いたしました。
ファイルのアドレスをすべて手打ちにしたらエラーが出なくなりました。
これまではコピペでやっていました。
コピペだとエラーになる理由が分からないので、教えていただけると嬉しいです。

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

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

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

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

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

Bull

2020/09/30 09:55

ファイル名の先頭に付いている '\u202a' (Left-to-right embedding) は必要なのでしょうか?
yuuutaaa

2020/09/30 23:52

必要ないと思いますが、消し方が分からないです。
yuuutaaa

2020/10/01 00:59

アドレスをすべて手打ちにしたらできました。 もともとはコピペでした。 原因は分からないです。 今後の役に立つと思いますので、教えていただけると嬉しいです。
Bull

2020/10/01 01:29

エディタによっては、文字コードを表示する機能がありますが、VScode ではデフォルトではそのような機能はないようです。 私は、秀丸エディタで確認しましたが、そのような機能があるエディタで確認してみてください。 '\u202a' (Left-to-right embedding) は双方向テキスト (右側から書くか、左側から書くか) のための制御コードのひとつで、日本語とか英文だけを扱っている限りは必要ないです(と思います)。 ファイル名にアラビア語などを使用場合には必要になるのかも知れませんが、それでも先頭に挿入されることはないんじゃないかと思います。(私が知らないだけかも知れませんが)。 コピー元にどのように書かれていたのか分からないのでなんとも言えませんが。コピー元のパス名が間違っている可能性もありますね。
yuuutaaa

2020/10/01 01:41

勉強になります。 ありがとうございます!
guest

回答3

0

自己解決

自己解決いたしました。
ファイルのアドレスをすべて手打ちにしたらエラーが出なくなりました。
これまではコピペでやっていたので、何かしら余計なものが入っていたのだと思われます。
しかし、コピペだとエラーになる原因が分からないので、教えていただけると嬉しいです。
回答をくださった方はご協力ありがとうございました。

投稿2020/10/01 01:18

yuuutaaa

総合スコア2

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

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

yasutakatou

2020/10/01 01:23

なるほど。ブラウザから張り付けたのでゴミが入っていたのですね。 どう対処したものか考えてましたが解決してよかったです!
yuuutaaa

2020/10/01 01:39

ですね。 お世話になりました!
guest

0

OSError: [Errno 22] Invalid argument: '\u202aC:/Users/K2020019/Desktop/sample.xlsx'

ファイルパスの頭に\u202aが入ってます。

Python

1import_file_path=r'‪C:/Users/*******/Desktop/sample.xlsx' #ファイルのパスを作成

で動きませんか?

投稿2020/09/30 08:31

Y.H.

総合スコア7918

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

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

yuuutaaa

2020/09/30 23:48

ありがとうございます。 rawでもやってみましたが同様の結果となりました。 ちなみにMacでやってみたらエラーが出ずにできました。
guest

0

c:\Usersの前にBase64ぽい文字コードが見えています。もしかするとユーザー名が日本語になってて
その影響が出ているかもしれないです。
c:\直下にフォルダを作成し、それを読み込ませるなどは如何でしょうか。

投稿2020/09/30 07:36

yasutakatou

総合スコア446

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

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

yuuutaaa

2020/09/30 08:08

ありがとうございます。 現在管理者権限がないため、取得次第やってみます。 Base64というのは(base) PSのことでしょうか? Terminalを追記したのでご確認いただけますでしょうか。 (base)はanacondaを使用しているためだと思います。
yasutakatou

2020/09/30 10:02

Base64は文字コードのことで余計な文字が紛れていそうです。 下のY.H.さんの対処が良さそうな気がしますがそれでも動かないなら 出来ればC:\Users配下から移動するのが良さそうです。管理者権限がないのにお手数の回答ですいませんでした。
yuuutaaa

2020/09/30 23:51

ありがとうございます。 Y.H.様の返信にも書きましたが、rawでもやってみましたができませんでした。 Macでやってみたところ同様な条件でできました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問