Python으로 Google Sheets에 있는 csv 사용하기

2023. 9. 29. 19:54·python snippets

외부 라이브러리를 사용하지 않는 것을 기준으로 작성

 

이런 형태의 csv파일이 있다고 가정한다.

링크는 https://docs.google.com/spreadsheets/d/1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4/edit#gid=883734849

 

 

 

기본작업

우선 권한을 '링크가 있는 모든 사용자'로 업데이트한다.

이래야 링크를 통한 접근이 가능해진다.

그다음, csv로 저장할지 바로 사용할지에 따라 방법이 갈린다.

 

 

1) 데이터를 csv 파일로 저장하여 사용하기

import urllib.request
import csv

doc_id = "1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4"
sheet_id = "883734849"
url = f"https://docs.google.com/spreadsheets/d/{doc_id}/export?format=csv&gid={sheet_id}"

output_file = "test.csv"
urllib.request.urlretrieve(url, output_file)

with open(output_file, "r", encoding="utf-8") as f:
    reader = csv.reader(f)
    next(reader)  # skip header
    for row in reader:
        print(row)

스프레드시트 화면에서 상단 주소표시줄을 보면

https://docs.google.com/spreadsheets/d/1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4/edit#gid=883734849

이런 형식의 주소가 보인다.

 

위 예시에서 doc_id는 /d/ 및 /edit 사이에 껴있는 1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4이고

sheet_id는 gid= 뒤에 있는 883734849이다.

 

 

 

실행을 해보면 csv파일이 제대로 받아진 걸 볼 수 있다.

 

 

 

2) 데이터를 바로 읽어들여 사용하기

import urllib.request
import csv
import io

doc_id = "1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4"
sheet_id = "883734849"
url = f"https://docs.google.com/spreadsheets/d/{doc_id}/export?format=csv&gid={sheet_id}"

response = urllib.request.urlopen(url)
data = response.read().decode("utf-8")
data = io.StringIO(data)

reader = csv.reader(data)
next(reader) # skip header
for row in reader:
    print(row)

urlretrieve가 아닌, urlopen을 사용하는 방법이다.

 

마찬가지로, 스프레드시트 화면에서 상단 주소표시줄을 보면

https://docs.google.com/spreadsheets/d/1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4/edit#gid=883734849

이런 형식의 주소가 보인다.

 

위 예시에서 doc_id는 /d/ 및 /edit 사이에 껴있는 1TeL3R5cmkSGt-Ynn9bmuF05n00W-ufONOaEGFV9uMw4이고

sheet_id는 gid= 뒤에 있는 883734849이다.

 

 

 

실행을 해보면 csv 데이터가 정상적으로 읽히는 것을 볼 수 있다.

저작자표시 비영리 (새창열림)

'python snippets' 카테고리의 다른 글

Python 3.12에서 ImportError: No module named matplotlib 에러가 뜰 때  (1) 2023.10.27
Python으로 문자 일괄치환  (0) 2023.09.30
Python으로 ix.io에 데이터 올리기  (1) 2022.09.30
'python snippets' 카테고리의 다른 글
  • Python 3.12에서 ImportError: No module named matplotlib 에러가 뜰 때
  • Python으로 문자 일괄치환
  • Python으로 ix.io에 데이터 올리기
Snowyegret
Snowyegret
기록용 블로그입니다.
  • Snowyegret
    Snowyegret
    Snowyegret
  • 공지사항

    • 문의: 디스코드 snowyegret12
    • 연락처(디스코드) 계정 변경 안내
    • 블로그 운영 재개 안내
  • 링크

    • 블로그 메인
    • 방명록/문의사항
    • Github Repositories
    • Github Gists
    • 분류 전체보기 (87) N
      • 늑대와 향신료 VR2 한글패치 (1)
      • 장난을 잘 치는 타카기양 VR 1학기 한글패치 (1)
      • Shephy 카드 설명 한국어 텍스쳐 모드 (1)
      • 한글패치 관련 짧은 글들 (37)
      • 한글패치 작업 내역 (11)
      • 한글화 분석 (작업X) (5)
      • python snippets (4)
      • 게임 (2)
      • 간단프로그램 (2)
      • IT (18) N
      • TODO (2)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.5
Snowyegret
Python으로 Google Sheets에 있는 csv 사용하기
상단으로

티스토리툴바