【ターミナルからCSVファイルを開けません】
ターミナルから、csvファイルをエクセルで開こうとしたところ、'does not exist'とエラーが出てしまいました。
Python
1import csv 2 3with open('test.csv', 'w')as csv_file: 4 fieldnames = ['Name', 'Count'] 5 writer = csv.DictWriter(csv_file, fieldnames=fieldnames) 6 writer.writeheader() 7 writer.writerow({'Name': 'A', 'Count': 1}) 8 writer.writerow({'Name': 'B', 'Count': 2}) 9 10with open('test.csv', 'r')as csv_file: 11 reader = csv.DictReader(csv_file) 12 for row in reader: 13 print(row['Name'], row['Count']) 14 15【test.csvファイル内】 16Name,Count 17A,1 18B,2 19 20【コンソール上】 21A 1 22B 2 23 24【ターミナルの内容】 25入力内容:open test.csv 26入力結果:test.csv does not exist. 27
言語:python
実行環境:PyCharm
PyCharm上ではエラー表記もなく、CSVファイルの作成と書き込み・読み込みができています。
初歩的な内容で恐縮なのですが、ご回答よろしくお願いします。
ターミナルで、pythonで下記を実行するとカレントディレクトリが表示されますが、それが.csvファイルが置いてあるフォルダと一致してますでしょうか?
import os
print(os.getcwd())
コードは「コードの挿入」で記入しましょう。
ターミナルでopenコマンドを使っているということはMacですかね。
実行環境を明示してください。
ターミナル上で、import os print(os.getcwd()) を入力したところ、
zsh: parse error near `)' がかえってきました。
コードの挿入で編集し直しました。ご指摘ありがとうございます。
Macを使用しています。実行環境はPyCharmです。
ターミナルで「ls test.csv」を実行してtest.csvが表示されますか?
> zsh: parse error near `)'
pythonを起動してから実行してください
ls: test.csv: No such file or directory の表示が出ました。
with open で test.csvファイルを同ディレクトリ内で作成したのにエラーが出る場合は、他の方がおっしゃる通り絶対パス等を使って解決するのでしょうか。
ターミナルで実行中のシェルには、それぞれカレントディレクトリの設定があります。「pwd」を実行すると、そのターミナルでのカレントディレクトリがわかります。
表示されるカレントディレクトリは、あなたがtest.csvを置いたディレクトリとは食い違っているはずです(lsで表示できないことから)。
cdコマンドを使ってカレントディレクトリをtest.csvを置いたディレクトリに変更すれば、絶対パスを使わずにtest.csvを処理することができます。
質問の意味を勘違いしてました
質問に挙げているpythonのスクリプトのどこかに
import os
print(os.getcwd())
を追記して、PyCharmで実行してください
そうしたら、お使いのMac内のどこかのフォルダのパスが表示されます
test.csvは、そこにあります
test.csvがある場所が分かったら、ターミナルでその場所に cd してから open すれば、test.csvを開けることができると思います
PyCharm上で対象のディレクトリからターミナルへ飛べました。
言語以外にも基礎用語についても学がなく、質問の内容もわかりにくい部分が多々あったにも関わらずアドバイスをくださった皆さんありがとうございました。