[ホーム] -
[よく見るエラーメッセージ一覧] - [open関数にて "OSError: [Errno 22] Invalid argument" の原因と対処]
作成日:2022/02/09
openでこのエラーが発生する場合、主な原因はファイルの読み込みに失敗です。ファイルパスの問題が大きな原因です。
ファイルが存在しているか確認してください。
よくあるのはファイルパスの指定方法の誤りです。
ファイルパスは以下のいずれかの方法で記述する必要があります。
・特殊文字は \ でエスケープします。例:"c:\\temp\\testfile.csv"
・raw 文字列を使用する。raw 文字列は先頭に r を付けます。例: r"c:\temp\testfile.csv"
【間違い】
import csv
csvfile = open("c:\temp\testfile.csv" , "r" , encoding = "shift_jis" , errors="" , newline="")
f = csv.reader(csvfile , delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
h = next(f)
print(h)
for row in f:
print(row)Traceback (most recent call last):【正しい】
File "c:\temp\test.py", line 3, incsvfile = open("c:\temp\testfile.csv" , "r" , encoding = "shift_jis" , errors="" , newline="")
OSError: [Errno 22] Invalid argument: 'c:\temp\testfile.csv'
import csv
csvfile = open("c:\\temp\\testfile.csv" , "r" , encoding = "shift_jis" , errors="" , newline="")
f = csv.reader(csvfile , delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
h = next(f)
print(h)
for row in f:
print(row)['東京京', '名古屋', '大阪']
['100', '50', '30']
['50', '30', '70']
['15', '55', '100']
サンプルコード
以下は Windows 10 環境における正常実行可能なサンプルコードです。
Windows 環境の Python にて、 csv (Comma Separated Value) ファイルを読み込むサンプルプログラムを紹介します。
次の例ではc:\temp\testfile.csv をcsv ファイルとして読み込みんでいます。
ヘッダーを出力し、その後各行を1行ごとに出力しています。
サンプルコード:
import csv
csvfile = open(r"c:\temp\testfile.csv" , "r" , encoding = "shift_jis'" , errors="" , newline="")
f = csv.reader(csvfile , delimiter=",", doublequote=True, lineterminator="\r\n", quotechar='"', skipinitialspace=True)
h = next(f)
print(h)
for row in f:
print(row)
実行結果:
['東京京', '名古屋', '大阪']
['100', '50', '30']
['50', '30', '70']
['15', '55', '100']
本サイト内掲載されている情報は、著作権法により保護されています。いかなる場合でも権利者の許可なくコピー、配布することはできません。 このページはリンクフリーです。(このページへの直接リンクも可能です。)
[ホーム] - [よく見るエラーメッセージ一覧]