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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

Q&A

解決済

2回答

897閲覧

各フォルダから条件付きのcsvファイルを読み込み

jin_jinjin

総合スコア2

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

0グッド

0クリップ

投稿2021/07/28 02:26

PythonのJupiter Notebookを用いて、各フォルダから条件付きのcsvファイルを読み込みたいです。
以下にファイル構成を示します。
イメージ説明
イメージ説明
イメージ説明

sampleの中に「smaple1」,「sample2」があり,2つのフォルダを連続で読み込み「002001.csv」を
読み込みたいです。

以下のコードを試して「smaple1」,「sample2」は取得できましたが、csvの取得がわかりませんでした。
ご教示いただきたく存じます。
よろしくお願いします。

for folder, subFolder, file in os.walk('C:/Users/imai006/sample'): for subfolder in subFolder : print(subfolder) sample1 smaple2

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

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

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

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

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

TakaiY

2021/07/28 11:05 編集

回答への質問を見ると、投稿の内容だけではなく他に条件がありそうですね。 もっと詳しく条件を書きましょう。 sample1フォルダ と sample2フォルダにどのようなファイルが入っていて、どのようなファイルを特定したいのですか? たとえば、「両方に存在するもの」とか?
jin_jinjin

2021/07/28 13:22

懇切丁寧にご助言いただきありがとうございます。 条件不足でした。誠に申し訳ございません。 今後は留意します。
guest

回答2

0

pathlibを使うのはどうでしょうか?

from pathlib import Path path = Path("C:/Users/imai006/sample/sample1") file_csv = path.glob("*.csv") count = 0 for csv in file_csv: if count == 0: df = pd.read_csv(csv , encoding="cp932") count += 1 else: df1 = pd.read_csv(csv , encoding="cp932") df = pd.merge(df , df1 , how = "left")

私が昔作ったコードを参考にしてみてください。

投稿2021/07/28 05:35

ArMigELo

総合スコア76

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

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

jin_jinjin

2021/07/28 13:19

コードを送付していただきありがとうございます。 参考にさせていただきます。
guest

0

ベストアンサー

他のファイルがないのであれば以下で出来ます。

python

1for folder, subFolder, files in os.walk('C:/Users/imai006/sample'): 2 for file in files: 3 print(folder + file)

しかし、もう少し条件を付けて探すなら、globモジュールを使うことも考えてみてください。

投稿2021/07/28 03:03

編集2021/07/28 03:04
ppaul

総合スコア24670

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

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

jin_jinjin

2021/07/28 03:30

ご教示いただきありがとうございます。 勉強不足で申し訳ないのですが、フォルダ内に「002001.csv」以外のファイルがある場合, globを用いる必要があるのでしょうか。 上記のコードに付け足すことで改善は厳しいでしょうか。
ppaul

2021/07/28 11:35

上記のコードに付け足すことで改善は厳しいでしょうか。 可能です。 globをを使った方が楽だというだけです。
jin_jinjin

2021/07/28 13:18

承知いたしました。 ご教示いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問