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

Lang

(40)
๐Ÿ Python * code๋กœ Ubuntu file, directory ์‚ญ์ œํ•˜๊ธฐ 1. ํŒŒ์ผ์„ ์ง€์šธ ๋•Œ ๐Ÿ‘‰ os.remove() import os os.remove(๊ฒฝ๋กœ) - path๊ฐ€ ๋””๋ ‰ํ† ๋ฆฌ(ํด๋”)์ธ ๊ฒฝ์šฐ OSError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. - ํ˜„์žฌ ์‚ฌ์šฉ์ค‘์ธ ํŒŒ์ผ์„ ์ง€์šฐ๋ ค๊ณ  ํ•  ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. - windows exception ๋ฐœ์ƒ - unix directory entry๋Š” ์ œ๊ฑฐ๋˜์ง€๋งŒ ํŒŒ์ผ ์‚ฌ์šฉ์ด ๋๋‚˜๊ธฐ ์ „๊นŒ์ง€๋Š” ์ €์žฅ์žฅ์น˜์—์„œ ์ œ๊ฑฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 2. ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์šธ ๋•Œ ๐Ÿ‘‰ os.rmdir() import os os.rmdir(๊ฒฝ๋กœ) - ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด OSError๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 3. ๋””๋ ‰ํ† ๋ฆฌ์™€ ๋‚ด์šฉ๋ฌผ ๋ชจ๋‘๋ฅผ ์ง€์šธ ๋•Œ ๐Ÿ‘‰ shutil.rmtree() import shutil shutil.rmtree(๊ฒฝ๋กœ[, ignore_errors[, oneror])] - ๋‹ค๋งŒ ..
โœ… Solved * [Python] ํ•œ๊ธ€ encoding์ด ๋˜์ง€ ์•Š์„ ๋•Œ โ—‡ Linux: Ubuntu 16.04 LTS + 2020/03/03 Python 3.6์€ ๋ฌธ์ž์—ด ์ธ์‹ ๋ฐฉ๋ฒ•์ด ๊ธฐ๋ณธ์ ์œผ๋กœ utf-8 ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋ฒ„์ „๋ณ„๋กœ ๊ธฐ๋ณธ ์ธ/๋””์ฝ”๋”ฉ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ์— ๊ด€๋ จ๋œ ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ์ฐพ์•„๋ณด๋Š” ๊ฒƒ์ด ์ข‹๊ฒ ๋‹ค. 1. ํŒŒ์ผ์˜ ๊ฐ€์žฅ ์œ„์— ์ฃผ์„์„ ์‚ฝ์ž…ํ•œ๋‹ค. # -*- coding:utf-8 -*- ์œ„์˜ ์ฃผ์„๋ฌธ ์ดํ›„์— ๋‚˜์˜ค๋Š” ๋ชจ๋“  ๋ฌธ์ž์—ด์ด UTF-8 ํ˜•์‹์ด๋ผ๋Š” ๊ฒƒ์„ ๋ช…์‹œํ•˜๋Š” ์ฝ”๋“œ์ด๋‹ค. ๋ณดํ†ต์˜ ๊ฒฝ์šฐ ์œ„์˜ ๋ฌธ์žฅํ•˜๋‚˜๋งŒ ์ ์–ด์ฃผ๋Š” ๊ฒƒ์œผ๋กœ ์ •๋ฆฌ๊ฐ€ ๋œ๋‹ค. ํ•˜์ง€๋งŒ, ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋ฉด ์™ธ๋ถ€์—์„œ ๋ถˆ๋Ÿฌ์˜จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํŒŒ์ผ์„ importํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์€๋ฐ ์ด ๊ฒฝ์šฐ ๋งค๋ฒˆ ๊ฐ ํŒŒ์ผ ์ƒ์œ„์— ์ฃผ์„์„ ์‚ฝ์ž…ํ•ด ์ฃผ๊ฑฐ๋‚˜ ์•„๋ž˜์˜ ๋ฐฉ๋ฒ•์„ main file์—๋‹ค๊ฐ€ ์‚ฌ์šฉํ•ด์ค€๋‹ค. 2. ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๊ธฐ๋ณธ..
๐Ÿ 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ํ•˜์ง€ ์•Š์„ ๋•Œ = ์“ฐ๊ธฐ ๊ถŒํ•œ..