[python] ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์†์‰ฝ๊ฒŒ ์ฐพ๊ธฐ: os.path ๋Œ€์‹  pathlib ์‚ฌ์šฉํ•˜๊ธฐ

2024. 7. 30. 22:17ยท๐Ÿ’ป Programming/Python
๋ฐ˜์‘ํ˜•

 

Python์—์„œ ํ˜„์žฌ ํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ์ƒ์œ„๋‚˜ ์ƒ์œ„ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•˜๋Š”๋ฐ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ์ผ ์‹œ์Šคํ…œ ๋‚ด์—์„œ ๋‹ค๋ฅธ ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ฝ์„ ๋•Œ๊ฐ€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต ๋งŽ์€ ๋ถ„๋“ค์ด(๊ณผ๊ฑฐ์˜ ๋‚˜๋„...) os ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, pathlib ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์‰ฝ๊ณ  ์ง๊ด€์ ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ์œผ๋‹ˆ ์•„๋ž˜ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•ด ์ฃผ์„ธ์š”!

 

1. os ๋ชจ๋“ˆ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

๋จผ์ €, os ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณผ๊ฒŒ์š”.

 

import os

current_dir = os.path.dirname(os.path.abspath(__file__))
print(current_dir)

 

  • ์ด ๋ฐฉ๋ฒ•์€ __file__ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฐ€์ ธ์˜จ ํ›„, os.path.abspath๋ฅผ ํ†ตํ•ด ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ os.path.dirname์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ ๋ถ€๋ถ„์„ ์ถ”์ถœํ•ด์š”
  • ๋งŒ์•ฝ ์ƒ์œ„ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด os.path.dirname(os.path.dirname(os.path.abspath(__file__))) ์ด ๋˜๋‹ˆ... ์ฝ”๋“œ๊ฐ€ ๊ธธ์–ด์ง€๊ฒ ์ฃ ? ..

 

2. pathlib ๋ชจ๋“ˆ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

pathlib ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ํ›จ์”ฌ ๊ฐ„๋‹จํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์–ด์š”.

from pathlib import Path

current_dir = Path(__file__).parent
print(current_dir)
  • ์ด ๋ฐฉ๋ฒ•์€ ํ•œ ์ค„๋กœ ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Path(__file__) ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ํ›„, parent ์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋””๋ ‰ํ† ๋ฆฌ ๋ถ€๋ถ„์„ ์ถ”์ถœํ•˜๋ฉด ๋ผ์š”.

 

3. ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ ์ฐพ๊ธฐ

pathlib์˜ ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์€ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด์—์š”. ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด parent ์†์„ฑ์„ ์ฒด์ธ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ์ธ๋ฑ์Šค๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๊ฑฐ๋“ ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ๋‹จ๊ณ„ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ฐพ๊ณ ์ž ํ•œ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

from pathlib import Path

current_file_path = Path(__file__)
parent_dir = Path(__file__).parents[0]
grandparent_dir = Path(__file__).parents[1]

print("Current Directory:", current_file_path)
print("Parent Directory:", parent_dir)
print("Grandparent Directory:", grandparent_dir)
  • parents ์†์„ฑ์€ ํ˜„์žฌ ๊ฒฝ๋กœ์˜ ์ƒ์œ„ ๊ฒฝ๋กœ๋“ค์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•ด์š”
  • ๋”ฐ๋ผ์„œ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋‹จ๊ณ„์˜ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Path(__file__) : ํ˜„์žฌ ํŒŒ์ผ ๊ฒฝ๋กœ
  • Path(__file__).parents[0] : ํ˜„์žฌ ํŒŒ์ผ ์ƒ์œ„ ํด๋”
  • Path(__file__).parents[1] : ํ˜„์žฌ ํŒŒ์ผ ์ƒ์œ„ ์ƒ์œ„ ํด๋”
  • Path(__file__).parents[2] : ํ˜„์žฌ ํŒŒ์ผ ์ƒ์œ„ ์ƒ์œ„ ์ƒ์œ„ ํด๋”

python ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋‹ค ๋ณด๋ฉด ํŒŒ์ผ์ด๋‚˜ ํด๋” ๊ฒฝ๋กœ๋ฅผ ์ฐพ์•„์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ฝค ๋งŽ์€๋ฐ์š”. ์ด ๋•Œ ์˜ค๋Š˜ ์•Œ๋ ค๋“œ๋ฆฐ pathlib๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์š”! ์ฝ”๋“œ ์œ ์ง€ ๋ณด์ˆ˜ ๊ด€์ ์—์„œ๋„ ์ข‹์œผ๋‹ˆ ๊ผญ ์‚ฌ์šฉํ•ด ๋ณด์‹œ๋Š” ๊ฑธ ์ถ”์ฒœ๋“œ๋ ค์š” !!

๋ฐ˜์‘ํ˜•

'๐Ÿ’ป Programming > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[FastAPI] API ํ‚ค๋กœ ์ธ์ฆ ์ ์šฉํ•˜๊ธฐ | API KEY  (0) 2024.08.06
[python] Streamlit ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ตํžˆ๊ธฐ ! | ํ…์ŠคํŠธ & ๋ฐ์ดํ„ฐ ํ‘œ์‹œ | ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ | ํŒŒ์ผ ์—…๋กœ๋“œ & ๋‹ค์šด๋กœ๋“œ  (0) 2024.07.14
[python] ์ค‘๊ณ ๊ธ‰์ž๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฟ€ํŒ 8๊ฐ€์ง€ : ๋” ๊น”๋”ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ ์‰ฌ์šด ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ!  (0) 2024.07.11
[python] ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฟ€ํŒ 8๊ฐ€์ง€ : ๋” ๊น”๋”ํ•˜๊ณ  ๊ฐ€๋…์„ฑ ๋†’์€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ!  (0) 2024.07.11
[python] Streamlit ์œผ๋กœ ๋ฐ์ดํ„ฐ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ! | ๊ฐ„๋‹จํ•œ ๋Œ€์‹œ๋ณด๋“œ & ์›น๋ฐ๋ชจ ํŽ˜์ด์ง€ ๊ฐœ๋ฐœ  (1) 2024.07.08
'๐Ÿ’ป Programming/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [FastAPI] API ํ‚ค๋กœ ์ธ์ฆ ์ ์šฉํ•˜๊ธฐ | API KEY
  • [python] Streamlit ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์ตํžˆ๊ธฐ ! | ํ…์ŠคํŠธ & ๋ฐ์ดํ„ฐ ํ‘œ์‹œ | ๋ ˆ์ด์•„์›ƒ ๊ด€๋ฆฌ | ํŒŒ์ผ ์—…๋กœ๋“œ & ๋‹ค์šด๋กœ๋“œ
  • [python] ์ค‘๊ณ ๊ธ‰์ž๋ฅผ ์œ„ํ•œ ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฟ€ํŒ 8๊ฐ€์ง€ : ๋” ๊น”๋”ํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜ ์‰ฌ์šด ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ!
  • [python] ํŒŒ์ด์ฌ ํด๋ฆฐ ์ฝ”๋“œ ์ž‘์„ฑ ๊ฟ€ํŒ 8๊ฐ€์ง€ : ๋” ๊น”๋”ํ•˜๊ณ  ๊ฐ€๋…์„ฑ ๋†’์€ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ!
๋ญ…์ฆค
๋ญ…์ฆค
AI ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ
    ๋ฐ˜์‘ํ˜•
  • ๋ญ…์ฆค
    CV DOODLE
    ๋ญ…์ฆค
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • โœจ About Me
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (198)
      • ๐Ÿ“– Fundamentals (33)
        • Computer Vision (9)
        • 3D vision & Graphics (6)
        • AI & ML (15)
        • NLP (2)
        • etc. (1)
      • ๐Ÿ› Research (64)
        • Deep Learning (7)
        • Image Classification (2)
        • Detection & Segmentation (17)
        • OCR (7)
        • Multi-modal (4)
        • Generative AI (6)
        • 3D Vision (2)
        • Material & Texture Recognit.. (8)
        • NLP & LLM (11)
        • etc. (0)
      • ๐ŸŒŸ AI & ML Tech (7)
        • AI & ML ์ธ์‚ฌ์ดํŠธ (7)
      • ๐Ÿ’ป Programming (85)
        • Python (18)
        • Computer Vision (12)
        • LLM (4)
        • AI & ML (17)
        • Database (3)
        • Apache Airflow (6)
        • Docker & Kubernetes (14)
        • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (4)
        • C++ (1)
        • etc. (6)
      • ๐Ÿ’ฌ ETC (3)
        • ์ฑ… ๋ฆฌ๋ทฐ (3)
  • ๋งํฌ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    LLM
    OpenAI
    object detection
    pandas
    Text recognition
    3D Vision
    airflow
    multi-modal
    ๋”ฅ๋Ÿฌ๋‹
    pytorch
    OCR
    ์ปดํ“จํ„ฐ๋น„์ „
    OpenCV
    ๊ฐ์ฒด ๊ฒ€์ถœ
    AI
    deep learning
    segmentation
    GPT
    Computer Vision
    ๊ฐ์ฒด๊ฒ€์ถœ
    material recognition
    nlp
    VLP
    ํŒŒ์ด์ฌ
    CNN
    ๋„์ปค
    ํ”„๋กฌํ”„ํŠธ์—”์ง€๋‹ˆ์–ด๋ง
    Image Classification
    ChatGPT
    Python
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
๋ญ…์ฆค
[python] ํ˜„์žฌ ํŒŒ์ผ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์†์‰ฝ๊ฒŒ ์ฐพ๊ธฐ: os.path ๋Œ€์‹  pathlib ์‚ฌ์šฉํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”