teratail header banner
teratail header banner
質問するログイン新規登録

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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

1560閲覧

globをしたファイル群をlist関数でリストにするとエラーが出る(Windows)

onosan

総合スコア62

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2023/12/16 09:42

0

0

Pandasライブラリ活用入門 第二版を使って勉強しています。
環境は、Windows11 Pythonのバージョンは3.9、pandasのバージョンは2.1.1です。
以下のようなコードがあります。第6章なのですが、下記のコードがあります。下記のファイル群は、実際に、Windowsのフォルダにあることが確認されています。

Python

1from pathlib import Path 2 3billboard_data_files = ( 4 Path('.') 5 .glob('/data/billborad-by_week/billboard-*.csv') 6) 7 8billboard_data_files =sorted(list(billboard_data_files)) 9 10#print(billboard_data_files)

ここで、どういうわけか、以下のようなエラーがでます。
###ここから
NotImplementedError Traceback (most recent call last)
Cell In[12], line 8
3 billboard_data_files = (
4 Path('.')
5 .glob('/data/billborad-by_week/billboard-*.csv')
6 )
7 #print(billboard_data_files)
----> 8 billboard_data_files = sorted(list(billboard_data_files))

File c:\Users\akira\Anaconda3\envs\py_39\lib\pathlib.py:1175, in Path.glob(self, pattern)
1173 drv, root, pattern_parts = self._flavour.parse_parts((pattern,))
1174 if drv or root:
-> 1175 raise NotImplementedError("Non-relative patterns are unsupported")
1176 selector = _make_selector(tuple(pattern_parts), self._flavour)
1177 for p in selector.select_from(self):

NotImplementedError: Non-relative patterns are unsupported
###ここまで、
このエラーはglobでジェネレーター化されたファイル群をリストに直すというところのようで、エラーの内容で検索などしたのですが、何が問題なのかわかりません。本のほうでは、WIndowsでもできるようなことが書かれていて、pandasのバージョンの問題なのか、何が問題なのか原因がわからない状況です。
何が原因かご教示いただくことは可能でしょうか。
よろしくお願い申し上げます。

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

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

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

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

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

guest

回答2

0

落ち穂拾いですが、

https://docs.python.org/ja/3/library/pathlib.html#pathlib.Path.glob

現在のパスが表すディレクトリ内で相対 pattern に一致する

と書かれていて、相対パターンだけを受け付けることを暗黙的に示しています

https://github.com/python/cpython/blob/v3.9.18/Lib/pathlib.py#L1175
コードを見ても、質問のコードはエラーが出ることに疑問の余地はないです。

投稿2023/12/16 16:25

quickquip

総合スコア11310

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

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

0

ベストアンサー

python

1$ python3 2Python 3.11.6 (main, Oct 8 2023, 05:06:43) [GCC 13.2.0] on linux 3>>> from pathlib import Path 4>>> [*Path('.').glob('/test/*')] 5Traceback (most recent call last): 6 File "<stdin>", line 1, in <module> 7 File "/usr/lib/python3.11/pathlib.py", line 950, in glob 8 raise NotImplementedError("Non-relative patterns are unsupported") 9NotImplementedError: Non-relative patterns are unsupported 10>>> [*Path('.').glob('test/*')] 11[PosixPath('test/a), PosixPath('test/b), PosixPath('test/c), PosixPath('test/d')]

Non-relative patterns are unsupported と表示されていますので、上記の例と同様に glob pattern の先頭の /(スラッシュ)を削除するとよいかと思います。

python

1.glob('/data/billborad-by_week/billboard-*.csv') 2# => 3.glob('data/billborad-by_week/billboard-*.csv')

投稿2023/12/16 13:26

編集2023/12/16 13:27
melian

総合スコア21234

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

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

onosan

2023/12/17 04:29

ありがとうございます!スラッシュ一つの問題だったのですね。エラーが出なくなったのですが、リストが空白で、おかしいなと思っていたのですが、種々設定を変えているうちにリストが表示されました。迅速に解決いただき、感謝いたします。この本で勉強するところをあきらめるところでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問