๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Lang/๐Ÿ Python

(14)
๐Ÿ Python * OS ๋ช…๋ น์–ด ๊ฒฐ๊ณผ๋ฅผ Python ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉํ• ๋ž˜! ๐Ÿ˜ ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด๋ฅผ ํŒŒ์ด์ฌ ์ฝ”๋“œ์—์„œ os.system์„ ์ด์šฉํ•˜์—ฌ ์ข…์ข… ์‹คํ–‰ํ•˜๊ณค ํ•œ๋‹ค. ํ•˜์ง€๋งŒ os.system์„ ์“ธ ๊ฒฝ์šฐ ๋ฌธ์ž์—ด ๊ฒฐ๊ณผ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ธฐ๋ž€.. ๐Ÿ˜ซ ํ•ด์„œ ์ธํ„ฐ๋„ท์œผ๋กœ ์ฐพ์•„๋ณด์•˜๋”๋‹ˆ Subprocess ๋ผ๋Š” ๊ธฐ๋ณธ ๋ชจ๋“ˆ์„ ์ด์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ๊ฒฐ๊ณผ๋ฅผ ์† ์‰ฝ๊ฒŒ ๋ณ€์ˆ˜ ๊ฐ’์œผ๋กœ ์ €์žฅ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๋‚ด์šฉ์„ ๋ฐœ์ทŒ ํ•ด์˜จ ํฌ์ŠคํŒ…์—์„œ communicate๋Š” ํŒŒ์ผ์ด ํฌ๊ฑฐ๋‚˜ unlimitedํ•œ ๋ถ€๋ถ„์—์„œ๋Š” ์“ฐ์ง€ ๋ง๋ผ๊ณ  ํ•œ๋‹ค๋Š” ๋Œ“๊ธ€์„ ๋ณด์•˜๋‹ค. ์™œ ๊ทธ๋Ÿฐ์ง€๊นŒ์ง€๋Š” ์ž์„ธํžˆ ๋ณด์ง€ ์•Š์•˜์œผ๋‹ˆ ๊ทธ๋Ÿฐ ์ƒํ™ฉ์ด๋ผ๋ฉด ์ข€ ๋” ์ฐพ์•„๋ณด๊ณ  ์ ์šฉํ•˜๋„๋ก ํ•˜์ž. ํŒŒ์ด์ฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ญ๋“  ๋ฌธ์„œ๋ฅผ ๋ณผ ๋•Œ๋Š” ์ž์‹ ์˜ ๋ฒ„์ „๊ณผ ๋ฌธ์„œ์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ฒ„์ „์ด ๊ฐ™์€ ์ง€๋ฅผ ํ•ญ์ƒ ๋ณด์•„์•ผ ํ•œ๋‹ค. Let's do this 1. check_output(...) import subprocess da..
๐Ÿ Python * code๋กœ File copy ํ•˜๊ธฐ โ—‡ Linux : Ubuntu 16.04 LTS Shutil ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด๋ด…์‹œ๋‹ค. ์‹คํ–‰ ์œ„์น˜์— ๋”ฐ๋ผ ๊ฒฝ๋กœ ์˜ค๋ฅ˜๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์œผ๋‹ˆ ๊ฒฝ๋กœ์— ์‹ ๊ฒฝ ์จ์„œ ์‹คํ–‰ํ•ด์ฃผ์„ธ์š”. 1. copy2(src, dst) import shutil shutil.copy2("๋ณต์‚ฌํ•  ํŒŒ์ผ๋ช…", "์ƒˆ๋กœ๋งŒ๋“œ๋Š” ํŒŒ์ผ๋ช…") 2. copyfile(src, dst) copyfile("๋ณต์‚ฌํ•  ํŒŒ์ผ๋ช…", "์ƒˆ๋กœ๋งŒ๋“œ๋Š” ํŒŒ์ผ๋ช…") - dst(์ƒˆ๋กœ๋งŒ๋“œ๋Š” ํŒŒ์ผ๋ช…)์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋ฎ์–ด ์”€ - pipe๋‚˜ character/block ๋””๋ฐ”์ด์Šค๋Š” ๋ณต์‚ฌ ํ•  ์ˆ˜ ์—†์Œ - IOError ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น€ 1. src๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ 2. src๊ฐ€ ์กด์žฌํ•˜์ง€๋งŒ ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†์„ ๋•Œ 3. dst๊ฐ€ writableํ•˜์ง€ ์•Š์„ ๋•Œ = ์“ฐ๊ธฐ ๊ถŒํ•œ..