前提・実現したいこと
Pythonで特定の文字がファイル名に入ったExcelファイルを開きたいです。
環境のせいでファイルが見つからないのかと思い、
AnacondaとVSCodeの2つの環境で試してみたのですが、
どちらでも結果はFileNotFoundErrorでした。
発生している問題・エラーメッセージ
FileNotFoundError Traceback (most recent call last) <ipython-input-10-a0ac85c6b89d> in <module> 7 if re.match(r'[0-32767]',i): #入力文字が範囲内の数値であるか確認 8 j = i.zfill(4) #数値の左にゼロを埋めて4ケタで表示する. ----> 9 file = open('D:\deta\ALL' and j and '\A' and j and 'CH2.csv', 'r') 10 data = csv.reader(file) 11 for row in data: FileNotFoundError: [Errno 2] No such file or directory: 'CH2.csv'
該当のソースコード
Python
1import csv 2import re 3 4print("データ数を入力して下さい.") 5i = input() #数値入力 6 7if re.match(r'[0-32767]',i): #入力文字が範囲内の数値であるか確認 8 j = i.zfill(4) #数値の左にゼロを埋めて4ケタで表示する. 9 file = open('D:\deta\ALL' and j and '\A' and j and 'CH2.csv', 'r') 10 data = csv.reader(file) 11 for row in data: 12 for col in row: 13 print(col, end=',') 14 print() 15 file.close() 16 17else: 18 print('利用可能範囲外の入力です.') #文字もしくは範囲外の数値を入力した際に表示 19 20 21
補足情報(FW/ツールのバージョンなど)
windows 64bit
Anaconda
ファイル名のところは and で間違いないですか。
+ じゃありませんか。
> Pythonで特定の文字がファイル名に入ったExcelファイルを開きたいです。
Excelファイル ではなく CSVファイル ですか?
エラーとは関係ない部分ですけど、「入力文字が範囲内の数値であるか確認」は意図通りのコードになってません。
正規表現で数値の範囲チェックする場合は、複雑な記述になるので
数値に戻してから範囲チェックしたほうが良いです。
>ファイル名のところは and で間違いないですか。
>+ じゃありませんか。
andで文字結合になると勘違いしておりました。ご指摘有難う御座います。
>Excelファイル ではなく CSVファイル ですか?
CSVファイルでした。ご指摘有難うございます。
>エラーとは関係ない部分ですけど、「入力文字が範囲内の数値であるか確認」は意図通りのコードになってません。
>正規表現で数値の範囲チェックする場合は、複雑な記述になるので
>数値に戻してから範囲チェックしたほうが良いです。
数値に戻してから範囲チェックしたほうが良いですね、それを踏まえて書き直してみます。
ご指摘有難う御座います。
回答2件
あなたの回答
tips
プレビュー