[Python] ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ œ์–ด

2025. 1. 14. 09:32ยท๐Ÿงฉ Language/Python
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
'๐Ÿงฉ Language/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Python] ํŒŒ์ด์ฌ์„ ํ™œ์šฉํ•œ ์ด๋ฉ”์ผ ์ž๋™ํ™” ๋ฐฉ๋ฒ•
  • [Python] ๋ฐ์ดํ„ฐ ํ‘œํ˜„์„ ์œ„ํ•œ ์ •๊ทœํ‘œํ˜„์‹ ์ •๋ฆฌ
  • [Python] ์ฃผ์š” ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ (๋ฆฌ์ŠคํŠธ / ๋”•์…”๋„ˆ๋ฆฌ)
  • [Python] ๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ ๋‹ค๋ฃจ๊ธฐ
WISHee
WISHee
IT์™€ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๊ณต๋ถ€ ๊ธฐ๋ก์„ ์ฐจ๊ณก์ฐจ๊ณก ์Œ“์•„๊ฐ€๋Š” ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ ๐Ÿ›ก๏ธ๐Ÿ’ป
  • WISHee
    DevwithWish
    WISHee
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸŒณ ROOT (128)
      • โ›“๏ธ ๋„คํŠธ์›Œํฌ ๋ณด์•ˆ (10)
        • ๊ธฐ๋ณธ ๊ฐœ๋… (9)
        • ํŒจํ‚ท ๋ถ„์„ (1)
        • ์นจ์ž… ํƒ์ง€ ๋ฐ ๋ฐฉ์ง€ (0)
      • โš™๏ธ ์‹œ์Šคํ…œ ๋ณด์•ˆ (0)
        • ์šด์˜์ฒด์ œ ๋ณด์•ˆ (0)
        • ์ทจ์•ฝ์  ๋ถ„์„ (0)
        • ๋กœ๊ทธ ๋ถ„์„ (0)
      • ๐ŸŒ ์›น ๋ณด์•ˆ (1)
        • OWASP TOP 10 (1)
        • ์›น ์„œ๋ฒ„ ๋ณด์•ˆ (0)
        • ์›น ์ทจ์•ฝ์  ๋ถ„์„ (0)
      • โ˜๏ธ ํด๋ผ์šฐ๋“œ ๋ณด์•ˆ (3)
        • AWS (3)
      • ๐Ÿ” ์•”ํ˜ธํ™” & ์ธ์ฆ (3)
        • ์•”ํ˜ธํ™” ๊ฐœ๋… (2)
        • TLS,SSL (0)
        • ์ธ์ฆ & ์ ‘๊ทผ์ œ์–ด (1)
      • ๐Ÿšจ ๋ณด์•ˆ ์‹ค๋ฌด (30)
        • ๋ณด์•ˆ ๊ด€์ œ (14)
        • ๋ชจ์˜ ํ•ดํ‚น (12)
        • ์ทจ์•ฝ์  ์ง„๋‹จ (3)
        • ๋””์ง€ํ„ธํฌ๋ Œ์‹ (1)
      • ๐Ÿ“š ISMS & ISO27001 (9)
        • ISMS, ISMS-P ์ธ์ฆ (2)
      • ๐Ÿ“ฐ ๋ณด์•ˆ ๋‰ด์Šค & ํŠธ๋ Œ๋“œ (1)
        • ์ตœ์‹  ๋ณด์•ˆ ์ด์Šˆ (1)
        • ์‚ฌ์ด๋ฒ„ ์œ„ํ˜‘ ์ •๋ณด (0)
        • ๋ณด์•ˆ ์ปจํผ๋Ÿฐ์Šค ๋ฆฌ๋ทฐ (0)
      • ๐Ÿ”ฅ SKShieldusRookies (15)
        • Review (3)
        • PBL (0)
        • ๊ณผ์ œ (4)
        • ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ (8)
        • ์ตœ์ข… ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ—‚๏ธ Project (3)
        • SOAR (0)
        • BlockChain (3)
      • ๐Ÿงฉ Language (23)
        • Java (1)
        • Python (16)
        • Programmers (6)
      • ๐Ÿ‘ฅ ๋ฒ„์ „๊ด€๋ฆฌ & ํ˜‘์—…๋„๊ตฌ (9)
        • Git, GitHub (4)
        • etc (5)
      • ๐Ÿ’œ ์ผ์ƒ (21)
        • Boot Camp (4)
        • Study (6)
        • Travel (8)
        • Study Abroad (3)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

    • GitHub
  • ๊ณต์ง€์‚ฌํ•ญ

    • ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค!
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์œ ๋Ÿฝ์—ฌํ–‰
    ํ•ด์™ธ์—ฌํ–‰
    ํ”Œ๋ผ์Šคํฌ
    slack
    ๋ชจ์˜ํ•ดํ‚น
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    ํŒŒ์ด์ฌ
    ์™€์ด์–ด์ƒคํฌ
    ํ˜‘์—…๋„๊ตฌ
    ๋ฆฌ๋ˆ…์Šค๋ณด์•ˆ
    ํŒŒ๋ฆฌ์—ฌํ–‰
    Github
    ๋Ÿฐ๋˜์—ฌํ–‰
    ์ •๋ณด๋ณด์•ˆ
    ํ”„๋ž‘์Šค์—ฌํ–‰
    ์˜นํ”Œ๋ขฐ๋ฅด
    ์œ ๋Ÿฝํ•œ๋‹ฌ์—ฌํ–‰
    ๋ณด์•ˆ์‹ค์Šต
    git
    ํ•œ๋‹ฌ์—ฌํ–‰
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    ๋ชฝ์ƒ๋ฏธ์…ธ
    Python
    ๋ธ”๋ก์ฒด์ธ์‹ค์Šต
    VSCode
    ์œˆ๋„์šฐ๋ณด์•ˆ
    ๊นƒํ—ˆ๋ธŒ
    flask
    ์นผ๋ฆฌ๋ฆฌ๋ˆ…์Šค
    sk์‰ด๋”์Šค๋ฃจํ‚ค์ฆˆ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • 160x600
    250x250
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
WISHee
[Python] ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ ์ œ์–ด
์ƒ๋‹จ์œผ๋กœ

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