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

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

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

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

解決済

カレントディレクトリが移動してしまう

Brot
Brot

総合スコア21

Python

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

1回答

0リアクション

0クリップ

158閲覧

投稿2022/08/11 03:31

前提

PythonでCSVファイルから見出しを削除するというものを本を見ながら作っています。
C:/Users/Documents/ch14/removeCsvHeaderという構成だとして、removeCsvHeaderの中にある複数のCSVファイルの見出しを削除したいのですが、ch14にあるCSVファイルの見出しが削除されてしまいます。
基本的なところの見落としがあるかもしれないのでご教示願いたいです。

実現したいこと

removeCsvHeaderの中にあるCSVファイルの見出しを削除したい

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

Traceback (most recent call last): File "C:/Users/Documents/ch14/removeCsvHeader.py", line 18, in <module> csv_file_obj = open(csv_filename) FileNotFoundError: [Errno 2] No such file or directory: 'NAICS_data_1048.csv'

該当のソースコード

Python

#! python3 # removeCsvHeader.py - カレントディレクトリの全CSVファイルから見出しを削除する import csv, os os.makedirs('headerRemoved', exist_ok=True) # カレントディレクトリの全ファイルをループする for csv_filename in os.listdir('.'): if not csv_filename.endswith('.csv'): continue # CSVファイルでなければスキップ ❶ print('見出し削除中 ' + csv_filename + '...') # CSVファイルを読み込む(最初の行をスキップする) csv_rows = [] csv_file_obj = open(csv_filename) reader_obj = csv.reader(csv_file_obj) for row in reader_obj: if reader_obj.line_num == 1: continue # 最初の行をスキップする csv_rows.append(row) csv_file_obj.close() # CSVファイルを書き出す csv_file_obj = open(os.path.join('headerRemoved', csv_filename), 'w', newline='') csv_writer = csv.writer(csv_file_obj) for row in csv_rows: csv_writer.writerow(row) csv_file_obj.close()

試したこと

os.chdir('removeCsvHeader')でカレントディレクトリを変更しても、removeCsvHeader.pyプログラムを実行した後、カレントディレクトリを確認するとchap.14になっている。

コードの9行目のfor csv_filename in os.listdir('.'):の部分を
for csv_filename in os.listdir('removeCsvHeader'):に書き換えたが、FileNotFoundError: [Errno 2] No such file or directory: 'NAICS_data_1048.csv'エラーが出る。

補足情報(FW/ツールのバージョンなど)

こちらに本のコードがあります
https://github.com/oreilly-japan/automatestuff-ja/blob/master/ch14/removeCsvHeader.py

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

hoshi-takanori

2022/08/11 03:45

カレントディレクトリは各プログラム (というかプロセス) が持ってるので、python プログラムの中で変更しても、コマンドプロンプトのカレントディレクトリは変更されません。
Brot

2022/08/11 04:42

すみません、説明不足でした。コマンドプロンプト上ではなく、IDLE上でカレントディレクトリを変更してPythonプログラムを実行しています。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python

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