๊ด€๋ฆฌ ๋ฉ”๋‰ด

IT’s Portfolio

[Python] open(0)๊ณผ sys.stdin ๋ณธ๋ฌธ

Development Study/Python

[Python] open(0)๊ณผ sys.stdin

f1r3_r41n 2022. 8. 2. 16:31
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป open(0)๊ณผ sys.stdin

์šฐ๋ฆฌ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๋น ๋ฅธ ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ sys.stdin.readline()์„ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ–ˆ์—ˆ๋‹ค.

์ฐธ์กฐ: https://it-neicebee.tistory.com/115

ํ•˜์ง€๋งŒ ๊ตณ์ด sys ๋ชจ๋“ˆ์„ importํ•˜์—ฌ ์“ธ ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค.

ํŒŒ์ผ ์ž…์ถœ๋ ฅ ํ•จ์ˆ˜์ธ open() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ™์€ ์ฝ”๋”ฉ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • open(0).read() == sys.stdin.read()

open()์˜ ๋ชจ๋“œ ์ •๋ฆฌ

  • 'r': (default) ์ฝ๊ธฐ์šฉ
  • 'w': ์“ฐ๊ธฐ์šฉ. ํŒŒ์ผ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ ํŒŒ์ผ์„ ์ƒˆ๋กœ ์ž‘์„ฑ
  • 'x': ๋…์ ์ ์ธ ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ์šฉ. ์ด๋ฏธ ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์—๋Ÿฌ
  • 'a': ์“ฐ๊ธฐ์šฉ. ํŒŒ์ผ์ด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ์˜ ๋์— ์ด์–ด๋ถ™์ž„
  • 'b': ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ชจ๋“œ
  • 't': (default) ํ…์ŠคํŠธ ๋ชจ๋“œ
  • '+': ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ์šฉ์œผ๋กœ ๋””์Šคํฌ ํŒŒ์ผ ์—ด๊ธฐ
  • 'U': ์œ ๋‹ˆ๋ฒ„์„ค ๊ฐœํ–‰ ๋ชจ๋“œ
  • ๊ธฐ๋ณธ ๋ชจ๋“œ๋Š” ํ…์ŠคํŠธ ์ฝ๊ธฐ ๋ชจ๋“œ => 'rt'
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ์“ฐ๊ธฐ ๋ชจ๋“œ => 'w+b'
    • ํŒŒ์ผ์„ ์—ด๋ฉด์„œ 0๋ฐ”์ดํŠธ๋กœ ์ž๋ฆ„
  • ๋ฐ”์ด๋„ˆ๋ฆฌ ์ฝ๊ธฐ ๋ชจ๋“œ => 'r+b'
    • ์ž๋ฅด์ง€ ์•Š๊ณ  ์—ผ
  • ํŒŒ์ด์ฌ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ์™€ ํ…์ŠคํŠธ ์ž…์ถœ๋ ฅ ๊ตฌ๋ณ„
    • ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ชจ๋“œ๋Š” ๋””์ฝ”๋”ฉ ์—†์ด bytes() ๊ฐ์ฒด ๋ฐ˜ํ™˜
    • ํ…์ŠคํŠธ ๋ชจ๋“œ๋Š” ํŒŒ์ผ ๋‚ด์šฉ์ด encoding ์ธ์ž๋กœ ์ž…๋ ฅ๋œ ํƒ€์ž…์„ ๊ธฐ๋ฐ˜์œผ๋กœ str ๋ฐ˜ํ™˜

read(), readline(), readlines()

  • read(): (default) ํŒŒ์ผ ๋‚ด์šฉ ์ „์ฒด๋ฅผ ๊ฐ€์ ธ์™€ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜
    • list์˜ pop()๊ณผ ๋น„์Šทํ•˜๊ฒŒ ํ•จ์ˆ˜ ์‚ฌ์šฉ ๋•Œ๋งˆ๋‹ค ๊ฒฐ๊ณผ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ณ  ๋ถˆ๋Ÿฌ์˜จ ๋ฐ์ดํ„ฐ ํ๊ธฐ
    • ๋ถˆ๋Ÿฌ์˜ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์„ ์‹œ ๋นˆ ๋ฌธ์ž์—ด ์ถœ๋ ฅ
    • ๋ถˆ๋Ÿฌ์˜ฌ ๋ฌธ์ž์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ธ์ž๋กœ ์ค„ ์ˆ˜ ์žˆ์Œ. ์ž…๋ ฅํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ํŒŒ์ผ ์ „์ฒด ๋ฌธ์ž์—ด์„ ๋ถˆ๋Ÿฌ์˜ด
  • readline(): ํ•จ์ˆ˜์˜ ๊ตฌ๋™ ๋ฐฉ์‹์€ read()์™€ ํก์‚ฌ. ํ•˜์ง€๋งŒ size ์ง€์ •์ด ์—†์Œ. ํŒŒ์ผ์˜ ํ•œ ์ค„์„ ๊ฐ€์ ธ์™€ ๋ฌธ์ž์—ด๋กœ ๋ฐ˜ํ™˜. ํŒŒ์ผ ํฌ์ธํ„ฐ๋Š” ๋‹ค์Œ ์ค„๋กœ ์ด๋™
  • readlines(): ํŒŒ์ผ ์ „์ฒด ๋‚ด์šฉ์„ ๊ฐ€์ ธ์™€ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜. ๊ฐ ์ค„์€ ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ๋ฆฌ์ŠคํŠธ ์š”์†Œ์— ์ €์žฅ
    • list(f) ์™€ f.readlines() ๋Š” ๊ฑฐ์˜ ๋™๋“ฑํ•จ

Standard Stream

  • ํ‘œ์ค€ ์ŠคํŠธ๋ฆผ: ์šด์˜์ฒด์ œ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ์ถ”์ƒํ™”๋œ ์ž…์ถœ๋ ฅ ์žฅ์น˜
    • std: standard ์•ฝ์ž
    • stdin(ํ‘œ์ค€ ์ž…๋ ฅ): Id๋Š” 0, ์ผ๋ฐ˜์ ์œผ๋กœ ํ‚ค๋ณด๋“œ
    • stdout(ํ‘œ์ค€ ์ถœ๋ ฅ): Id๋Š” 1, ์ผ๋ฐ˜์ ์œผ๋กœ ํ˜„์žฌ ์‰˜์„ ์‹คํ–‰ํ•œ ์ฝ˜์†”์ด๋‚˜ ํ„ฐ๋ฏธ๋„
    • stderr(ํ‘œ์ค€ ์—๋Ÿฌ): Id๋Š” 2, ์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œ์ค€ ์ถœ๋ ฅ๊ณผ ๋™์ผ

์ฆ‰ open()์—๊ฒŒ 0์ด๋ผ๋Š” ์ธ์ž๋ฅผ ์ฃผ๋ฉด stdin๊ณผ ๋™์ผํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.

728x90
๋ฐ˜์‘ํ˜•
Comments