728x90
๋ฐ์ํ
โป SK ์ด๋์ค ๋ฃจํค์ฆ 24๊ธฐ (ํด๋ผ์ฐ๋๊ธฐ๋ฐ ์ค๋งํธ ์ตํฉ๋ณด์ ๊ณผ์ ) ๊ต์ก์ ๋ค์ผ๋ฉด์ ์์ฑํ ๋ด์ฉ์ ๋๋ค.
1๏ธโฃ ๊ธฐ๋ณธ ๊ฐ๋ : ํ์ผ๊ณผ ํ์ผ ๊ฒฝ๋ก
๐น1. ํ์ผ๊ณผ ํ์ผ ๊ฒฝ๋ก์ ์ดํด
- ํ์ผ: ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋จ์
- ํ ์คํธ ํ์ผ(``.txt``), ์ด๋ฏธ์ง ํ์ผ(``.png``), ์คํ ํ์ผ(``.exe``) ๋ฑ ๋ค์ํ ํ์์ด ์์
- ํ์ผ ๊ฒฝ๋ก: ์ปดํจํฐ์์ ํ์ผ์ ์์น๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด. ๊ฒฝ๋ก๋ ๋ ๊ฐ์ง๋ก ๊ตฌ๋ถ ๋จ
- ์ ๋ ๊ฒฝ๋ก: ํ์ผ์ ์ ์ฒด ์์น ๋ฅด ๋ํ๋ (์: ``C:\Users\User\example.txt``)
- ์๋ ๊ฒฝ๋ก: ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ์ผ์ ์์น๋ฅผ ๋ํ๋ (์: ``../example.txt``)
๐น2. ์ฃผ์ ๊ฒฝ๋ก ํ๊ธฐ๋ฒ
- Windows: ๊ฒฝ๋ก ๊ตฌ๋ถ์๋ก ๋ฐฑ์ฌ๋์(``\``)๋ฅผ ์ฌ์ฉ
- maxOS/Linux: ๊ฒฝ๋ก ๊ตฌ๋ถ์๋ก ์ฌ๋์(``/``)๋ฅผ ์ฌ
file_path = "C:\\Users\\User\\example.txt" # Windows ๊ฒฝ๋ก
file_path = "/home/user/example.txt" # macOS/Linux ๊ฒฝ๋ก
๋ฃจํธ ํด๋
- ๋ชจ๋ ํด๋๊ฐ ํฌํจ๋ ์ต์์ ํด๋๋ฅผ ๋ปํจ
- Windows์ ๋ฃจํธ ํด๋: ``C:\``
- macOS ๋๋ Linux์ ๋ฃจํธ ํด๋: ``/``
๐น3. os ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ํ์ด์ฌ์ ๋ด์ฅ ๋ชจ๋์ธ os๋ ์ด์ ์ฒด์ ์์ ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ ์ดํ ์ ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณต
import os
2๏ธโฃ ๋๋ ํฐ๋ฆฌ ์์
๐น1. ํ์ฌ ์์ ๋๋ ํฐ๋ฆฌ ํ์ธ: os.getcwd()
- ํ์ฌ ์์ ์ค์ธ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ์ธํ๋ ค๋ฉด ``os.getcwd()``๋ฅผ ์ฌ์ฉ
import os
current_dir = os.getcwd()
print(f"ํ์ฌ ์์
๋๋ ํฐ๋ฆฌ: {current_dir}")
๐น2. ๋๋ ํฐ๋ฆฌ ๋ด์ฉ ํ์ธ: os.listdir()
- ์ง์ ๋ ๋๋ ํฐ๋ฆฌ์ ํ์ผ ๋ฐ ํ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ํ์ธํ๋ ค๋ฉด ``os.listdir()์ ์ฌ์ฉ``
contents = os.listdir('.') # ํ์ฌ ๋๋ ํฐ๋ฆฌ ๋ด์ฉ ํ์ธ
print(contents)
๐น3. ๋๋ ํฐ๋ฆฌ ํ์: os.walk()
- ๋๋ ํฐ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ฌ๊ท์ ์ผ๋ก ํ์ํ๋ ค๋ฉด ``os.walk()``๋ฅผ ์ฌ์ฉ
for dirpath, dirnames, filenames in os.walk('.'):
print(f"๋๋ ํฐ๋ฆฌ: {dirpath}")
print(f"ํ์ ๋๋ ํฐ๋ฆฌ: {dirnames}")
print("ํ์ผ: {filenames}")
3๏ธโฃ ํ์ผ ์์
๐น1. ํ์ผ ์กด์ฌ ์ฌ๋ถ ํ์ธ: os.path.isfile()
- ํ์ผ์ธ์ง ํ์ธํ๋ ค๋ฉด ``os.path.isfile()``๋ฅผ ์ฌ์ฉ
import os
file_path = 'example.txt'
if os.path.isfile(file_path):
print(f"{file_path}๋ ํ์ผ์
๋๋ค.")
else:
print(f"{file_path}๋ ํ์ผ์ด ์๋๋๋ค.")
๐น2. ๋๋ ํฐ๋ฆฌ ์กด์ฌ ์ฌ๋ถ ํ์ธ: os.path.isdir()
- ๋๋ ํฐ๋ฆฌ์ธ์ง ํ์ธํ๋ ค๋ฉด ``os.path.isdir()``๋ฅผ ์ฌ์ฉ
if os.path.isdir('test_dir'):
print("๋๋ ํฐ๋ฆฌ๊ฐ ์กด์ฌํฉ๋๋ค.")
else:
print("๋๋ ํฐ๋ฆฌ๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.")
๐น3. ํ์ผ ๊ฒฝ๋ก ๊ฒฐํฉ: os.path.join()
- ํ์ผ ๊ฒฝ๋ก๋ฅผ ์์ ํ๊ฒ ๊ฒฐํฉํ๋ ค๋ฉด ``os.path.join()``๋ฅผ ์ฌ์ฉ
file_path = os.path.join('test_dir', 'example.txt')
print(f"ํ์ผ ๊ฒฝ๋ก: {file_path}")
4๏ธโฃ ํ์ผ ์ฝ๊ธฐ์์ฐ๊ธฐ
๐น1. ํ์ผ ์ด๊ธฐ์ ์ฝ๊ธฐ: with open()
- ํ์ผ์ ์ฝ๊ฑฐ๋ ์ธ ๋๋ ``with open()``์ ์ฌ์ฉํ์ฌ ํ์ผ์ ์์ ํ๊ฒ ์ด๊ณ , ๋ซ์ ์ ์์
- ``open()``ํจ์๋ ํ์ผ์ ์ฌ๋ ๋ชจ๋ ์ต์
์ ํตํด ๋ค์ํ ์์
์ ์ง์
- ``'r'`` (์ฝ๊ธฐ ๋ชจ๋): ํ์ผ์ ์ฝ๊ธฐ ์ ์ฉ์ผ๋ก ์ฌ๋๋ฐ, ํ์ผ์ด ์์ผ๋ฉด ์ค๋ฅ ๋ฐ์
- ``'w'`` (์ฐ๊ธฐ ๋ชจ๋): ํ์ผ์ ๋ด์ฉ ์์ฑ, ํ์ผ์ด ์์ผ๋ฉด ์์ฑํ๊ณ , ๊ธฐ์กด ๋ด์ฉ์ ๋ฎ์ด์
- ``'a'`` (์ถ๊ฐ ๋ชจ๋): ํ์ผ ๋์ ๋ด์ฉ์ ์ถ๊ฐ, ํ์ผ์ด ์์ผ๋ฉด ์์ฑ
# ํ์ผ ์ฝ๊ธฐ
with open('example.txt', 'r') as f:
content = f.read()
print(content)
# ํ์ผ ์ฐ๊ธฐ
with open('example.txt', 'w') as f:
f.write("Hello, Python!")
- ํ์ผ ์ฝ๊ธฐ ๊ด๋ จ ๋ฉ์๋:
- ``f.read()``: ํ์ผ ์ ์ฒด ์ฝ๊ธฐ
- ``f.readline()``: ํ์ผ์์ ํ ์ค ์ฝ๊ธฐ
- ``f.readlines()``: ํ์ผ์ ๋ชจ๋ ์ค์ ๋ฆฌ์คํธ๋ก ๋ฐํ
5๏ธโฃ ํ์ผ ์ด๋ฆ ๋ฐ ํ์ฅ์ ์ฒ๋ฆฌ
๐น1. ํน์ ํ์ฅ์๋ก ํํฐ๋ง: ``str.endswith()``
- ํ์ผ ์ด๋ฆ์ด ํน์ ํ์ฅ์๋ก ๋๋๋์ง ํ์ธํ๋ ค๋ฉด ``str.endswith()``๋ฅผ ์ฌ์ฉ
files = ['example.txt', 'data.csv', 'image.png']
for file in files:
if file.endswith('.txt'):
print(f"ํ
์คํธ ํ์ผ: {file}")
6๏ธโฃ ์ค์ฉ ์์ : ํน์ ํ์ฅ์ ํ์ผ ๊ฒ์ฌ ๋ฐ ์กฐ๊ฑด ํ์ง
- ๋ค์์ ํน์ ํด๋์ ์๋ ํน์ ํ์ฅ์ ํ์ผ์ ๊ฒ์ฌํ๊ณ , ๊ฐ ํ์ผ์์ ํน์ ์กฐ๊ฒ์ ํ์งํ๋ ์์ ์
- ์๋ฅผ ๋ค์ด .txt ํ์ผ์์ "#error"๋ผ๋ ๋จ์ด๋ก ์์๋๋ ์ค์ ์ฐพ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์:
import os
dir_path = "" # ํน์ ๋๋ ํฐ๋ฆฌ ๊ฒฝ๋ก
all_files = os.listdir(dir_path)
txt_files = []
for file in all_files:
if file.endswitch(.'txt'):
txt_files.append(file)
for file_name in txt_files:
file_path = os.path.join(dir_path, file_name)
with open(file_path, "r", encoding='utf-8') as f:
lines = f.readlines()
for i, line in enumerate(lines):
if line.startswith('#error'):
print(f"์ธ๋ฑ์ค: {i+1}, ํ์ง ๋ฌธ์: {line}")
728x90
๋ฐ์ํ
'๐งฉ Language > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ํ์ด์ฌ์ ํ์ฉํ ์ด๋ฉ์ผ ์๋ํ ๋ฐฉ๋ฒ (1) | 2025.01.16 |
---|---|
[Python] ๋ฐ์ดํฐ ํํ์ ์ํ ์ ๊ทํํ์ ์ ๋ฆฌ (0) | 2025.01.15 |
[Python] ์ฃผ์ ๋ฐ์ดํฐ ๊ตฌ์กฐ (๋ฆฌ์คํธ / ๋์ ๋๋ฆฌ) (0) | 2025.01.14 |
[Python] ๊ธฐ๋ณธ ์ ์ถ๋ ฅ ๋ค๋ฃจ๊ธฐ (0) | 2025.01.13 |
[์ค๋ฅ ํด๊ฒฐ] googletrans ์ฌ์ฉ ์ค ์ค๋ฅ (0) | 2025.01.13 |