안녕하세요. 궁금증연구소 입니다.
오늘 포스팅 주제는 "Github 에서 일부파일만 다운받는 방법은?" 입니다.
요즘 파이썬의 판다스 전처리 연습을 열심히 하느라. 판다스 인 액션이라는 교재를 공부하고 있습니다.
https://github.com/paskhaver/pandas-in-action
요 주소에 가면 예제파일들을 받아볼 수 있습니다.
데이터 전처리를 위해서 csv 데이터 파일을 raw 데이터를 복사하여 vs-code에 일일히 파일을 만들어주는 식으로 파일을 가져왔습니다. git-clone을 사용해도 되지만, 한꺼번에 데이터가 모두 들어와서 쓸데없는 폴더 만들어지는게 싫어서 그냥 이렇게 했는데, 문득...깃허브의 개별 폴더 속의 특정 파일만 다운로드 받는 방법이 궁금해 졌습니다.
curl -LJO https://raw.githubusercontent.com/paskhaver/pandas-in-action/master/chapter_08_reshaping_and_pivoting/minimum_wage.csv
가장 쉬운 방법은 요런식으로 curl 명령어를 사용하면 됩니다.
그런데 이방법을 쓰면 csv 파일이 100개면 100문장을 써주어야 합니다..ㅠ
제가 원하는 다운로드 파일은 4개이니
curl -LJO https://raw.githubusercontent.com/paskhaver/pandas-in-action/master/chapter_08_reshaping_and_pivoting/minimum_wage.csv
curl -LJO https://raw.githubusercontent.com/paskhaver/pandas-in-action/master/chapter_08_reshaping_and_pivoting/population.csv
curl -LJO https://raw.githubusercontent.com/paskhaver/pandas-in-action/master/chapter_08_reshaping_and_pivoting/state-abbrevs.csv
curl -LJO https://raw.githubusercontent.com/paskhaver/pandas-in-action/master/chapter_08_reshaping_and_pivoting/state-population.csv
요렇게 하면 다운로드가 되겠군요..
*.csv 형태로 적어보았으나, 에러가 나길래, 찾아보았더니, curl 명령어에 * 와일드카드는 유닉스 시스템에서만 가능하고, 윈도우에서는 적용이 안되는 군요..-_-;
for file in $(curl -s https://api.github.com/repos/{username}/{repository}/contents/{directory} | grep -oP '(?<="download_url": ")[^"]*(?=\", "name")' | grep '.csv'); do curl -LOk $file; done
이런식으로 배쉬의 for문을 써도 되는데... 이것까지 쓸빠에.. 걍 git-clone을 활용하시길..
머신러닝 스탠포드 c229 강의는 어떻게 듣나요? (feat. Andrew Ng) (1) | 2023.03.10 |
---|---|
[python] np.nan == np.nan 의 결과는 False일까 True일까? (0) | 2023.03.01 |
[pandas] quantile() 함수에서 quantile(0.1)은 상위 10%일까?? (0) | 2023.02.24 |
[파이썬] list() 함수는 iterable 객체만 받는다. (0) | 2023.02.12 |
프로그래머스 문자열 내림차순으로 배치하기 (0) | 2023.02.11 |