์ธ๊ณต์ง€๋Šฅ๐Ÿพ/ํŒŒ์ด์ฌ ๊ธฐ๋ณธ

[ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๊ฐœ๋…] ํด๋”&ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ(Folder&File Handling)

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 1. 29. 09:29
728x90

* ์ด ๊ธ€์€ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์ฝ”์Šค์˜ ์ธ๊ณต์ง€๋Šฅ(AI) ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

File System : OS(์šด์˜์ฒด์ œ)์—์„œ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ํŠธ๋ฆฌ๊ตฌ์กฐ ์ €์žฅ์ฒด๊ณ„

 

์ข…๋ฅ˜

1. Binary File : ์ปดํ“จํ„ฐ๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์ธ ์ด์ง„(๋ฒ•)์œผ๋กœ ์ €์žฅ๋œ ํŒŒ์ผ ex. excel, word ๋“ฑ

2. Text File : ์‚ฌ๋žŒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด ํ˜•์‹์œผ๋กœ ์ €์žฅ๋œ ํŒŒ์ผ๋กœ ASCII/Unicode ๋กœ ์ €์žฅ๋จ

                     ex. ๋ฉ”๋ชจ์žฅ์œผ๋กœ ์—ด๋ฆฌ๋Š” ํŒŒ์ผ(HTML, code)

 

์‚ฌ์šฉ๋ฐฉ๋ฒ•

1) ํŒŒ์ผ ์—ด๊ธฐ

f = open("ํŒŒ์ผ์ด๋ฆ„", mode="์ ‘๊ทผ๋ชจ๋“œ ์ข…๋ฅ˜")

 

cf) ์ ‘๊ทผ๋ชจ๋“œ ์ข…๋ฅ˜

  • r (์ฝ๊ธฐ ๋ชจ๋“œ)
  • w (์“ฐ๊ธฐ ๋ชจ๋“œ)
  • a (์ถ”๊ฐ€ ๋ชจ๋“œ) : ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰์— ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•  ๋•Œ ์‚ฌ์šฉ

 

2) ํŒŒ์ผ ๋‹ซ๊ธฐ

f.close()

 

3) ํŒŒ์ผ ์ฝ๊ธฐ

  • ์ „์ฒด ์ฝ๊ธฐ
f = open("ํŒŒ์ผ์ด๋ฆ„", mode="r")
contents=f.read()
f.close()

or

with open("ํŒŒ์ผ์ด๋ฆ„", mode="r") as f:
    contents=f.read()

with ๊ตฌ๋ฌธ์ด ๋๋‚˜๋ฉด ํŒŒ์ผ์ด ์ž๋™์œผ๋กœ close ๋œ๋‹ค.

  • ํ•œ์ค„์”ฉ ์ฝ๊ธฐ
f = open("ํŒŒ์ผ์ด๋ฆ„", mode="r")
content_list=f.readlines() #ํ•œ์ค„์”ฉ list ํ˜•ํƒœ๋กœ ์ €์žฅ
f.close()
  • ์‹คํ–‰์‹œ๋งˆ๋‹ค ํ•œ์ค„์”ฉ ์ฝ์–ด์˜ค๊ธฐ(์šฉ๋Ÿ‰์ด ํด๋•Œ)
f = open("ํŒŒ์ผ์ด๋ฆ„", mode="r")
i=0
while True:
    line=f.readline()
     if not line: #๋นˆ line์ด ๋‚˜์˜ค๋ฉด ์ข…๋ฃŒ
        break
f.close()

 

์˜ˆ์ œ) ํŒŒ์ผ์ด ๋ช‡๊ฐœ์˜ ๋‹จ์–ด์™€ ์ค„๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž.

 

1
2
3
4
5
6
7
= open("ํŒŒ์ผ์ด๋ฆ„", mode="r")
contents=f.read()
word_list=contents.split(" ")
line_list=contents.split("\n")
print("๋‹จ์–ด์ˆ˜ : "len(word_list))
print("์ค„์ˆ˜ : "len(line_list))
f.close()
cs

 

4) ํŒŒ์ผ ์“ฐ๊ธฐ

  • ๋ฎ์–ด์“ฐ๊ธฐ
f =open("ํŒŒ์ผ์ด๋ฆ„", mode="w", encoding="์ธ์ฝ”๋”ฉ์ข…๋ฅ˜")
#ํ•œ์ค„์”ฉ ์“ฐ๊ธฐ
for i in range(10):
    f.write("์“ฐ๊ณ ์‹ถ์€๋‚ด์šฉ")
f.close()

or

with open("ํŒŒ์ผ์ด๋ฆ„", mode="w", encoding="์ธ์ฝ”๋”ฉ์ข…๋ฅ˜") as my_file:
    #ํ•œ์ค„์”ฉ ์“ฐ๊ธฐ
    for i in range(10):
        f.write("์“ฐ๊ณ ์‹ถ์€๋‚ด์šฉ")

with ๊ตฌ๋ฌธ์ด ๋๋‚˜๋ฉด ํŒŒ์ผ์ด ์ž๋™์œผ๋กœ close ๋œ๋‹ค.

 

cf) ์ธ์ฝ”๋”ฉ ์ข…๋ฅ˜

  • utf8 (ํ•œ๊ธ€, ๋™์•„์‹œ์•„)
  • cp949 (์œˆ๋„์šฐ)

๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ๋Š” ์ธ์ฝ”๋”ฉ์„ ํ™•์ธํ•˜์ž. 

๊ธฐ๋ณธ์ ์œผ๋กœ utf8๋กœ ์ €์žฅํ•˜๋„๋ก ํ•˜์ž.

  • ์ถ”๊ฐ€๋กœ ์“ฐ๊ธฐ
f = open("ํŒŒ์ผ์ด๋ฆ„", mode="a", encoding="์ธ์ฝ”๋”ฉ์ข…๋ฅ˜")
for i in range(5):

    f.write("์“ฐ๊ณ ์‹ถ์€๋‚ด์šฉ)
content_list=f.readlines() #ํ•œ์ค„์”ฉ list ํ˜•ํƒœ๋กœ ์ €์žฅ
f.close()

 

ํด๋”์™€ ํŒŒ์ผ ๋‹ค๋ฃจ๊ธฐ

-1) ๋””๋ ‰๋„๋ฆฌ๋‚˜ ํŒŒ์ผ์„ ๊ฐ์ฒด๋กœ ๋‹ค๋ฃจ๊ธฐ

  • ํ˜„์žฌ ๊ฒฝ๋กœ
import pathlib
pathlib.Path.cwd()
  • ํ˜„์žฌ ๊ฒฝ๋กœ์˜ ์ƒ์œ„ ํด๋”์˜ ์ด๋ฆ„์„ ํ™•์ธ
import pathlib
pathlib.Path.cwd().parent
  • ํ˜„์žฌ ๊ฒฝ๋กœ์˜ ์ƒ์œ„ํด๋”๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋กœ ํ™•์ธ
import pathlib
list(pathlib.Path.cwd().parents)
  • ํ˜„์žฌ ๊ฒฝ๋กœ์˜ ๋ชจ๋“  ํด๋”/ํŒŒ์ผ ํ™•์ธ
import pathlib
list(pathlib.Path.cwd().glob('*'))

 

0) ํŒŒ์ผ ๊ฒฝ๋กœ ์ง€์ •ํ•˜๊ธฐ

import os
os.path.join("๊ฒฝ๋กœ", "ํŒŒ์ผ๋ช…")

์šด์˜์ฒด์ œ๋งˆ๋‹ค ๊ฒฝ๋กœ ๊ตฌ๋ถ„์ž๊ฐ€ ๋‹ค๋ฅธ๋ฐ, ์ด๋•Œ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ ์œ„์˜ ํ˜•์‹์„ ๊ถŒ์žฅ

 

1) ํด๋” ๋งŒ๋“ค๊ธฐ

import os
try:
    os.mkdir("ํด๋”์ด๋ฆ„")
except FileExistsError as e:
    print("Already created")

cf) ํŒŒ์ผ์ด๋‚˜ ํด๋”๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์ฝ”๋“œ

  • os.path.exists("ํด๋”์ด๋ฆ„")
  • os.path.isfile("ํŒŒ์ผ๋ช…")

 

์˜ˆ์ œ) ํŠน์ • ํด๋”์— ํŠน์ • ํŒŒ์ผ์— ๊ธฐ๋กํ•ด๋ณด์ž.

 

import os
# ํด๋”๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
if not os.path.exists("ํด๋”๋ช…"):
    os.mkdir("ํด๋”๋ช…")
TARGET_FILE_PATH=os.path.join("ํด๋”๋ช…", "ํŒŒ์ผ๋ช…")
#ํŒŒ์ผ์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธ
if not os.path.exists(TARGET_FILE_PATH):
    f=open("ํด๋”๋ช…/ํŒŒ์ผ๋ช…", "a", encoding="utf8")
    f.write("๊ธฐ๋ก์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค")
    f.close()

 

 

 

 

 

728x90