{ "metadata": { "name": "", "signature": "sha256:dd334c6957c3dc2ae7bdb34ebf3a2b75cf1fc20f77f9f62ace43f18da4b929e9" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "***\n", "# 14. \ud30c\uc77c\uacfc \ub514\ub809\ud1a0\ub9ac \ub2e4\ub8e8\uae30\n", "***\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 1 \ud30c\uc77c \ub2e4\ub8e8\uae30\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-1 \ud30c\uc77c \ubaa9\ub85d \uc5bb\uae30\n", "- os.listdir('\uacbd\ub85c')\n", " - \ub514\ub809\ud1a0\ub9ac \uc548\uc5d0 \ub4e4\uc5b4 \uc788\ub294 \uac01 \ud30c\uc77c \ubaa9\ub85d \ubc18\ud658" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "\n", "print os.listdir('.') # \ud604\uc7ac \ub514\ub809\ud1a0\ub9ac\uc758 \ud30c\uc77c \ubaa9\ub85d \uc5bb\uae30\n", "print \n", "\n", "print os.listdir('../') # \ud604\uc7ac \ub514\ub809\ud1a0\ub9ac\uc758 \ubd80\ubaa8 \ub514\ub809\ud1a0\ub9ac\uc758 \ud30c\uc77c \ubaa9\ub85d \uc5bb\uae30" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "['.DS_Store', '.git', '.gitignore', '.ipynb_checkpoints', 'example', 'files', 'images', 'python01.ipynb', 'python02.ipynb', 'python03.ipynb', 'python04.ipynb', 'python05.ipynb', 'python06.ipynb', 'python07.ipynb', 'python08.ipynb', 'python09.ipynb', 'python10.ipynb', 'python11.ipynb', 'python12.ipynb', 'python13.ipynb', 'python14.ipynb', 'python15.ipynb', 'python16.ipynb', 'python17.ipynb', 'python18.ipynb', 'python19.ipynb', 'README.md', 'removeme.txt', 'sample.txt', 't1.txt', 'teststring2.pyc']\n", "\n", "['.DS_Store', 'calendar', 'calendar-dev', 'ipython', 'jms', 'jms-scheduler', 'mySpringFrame', 'python-e-learning', 'python-e-learning-movie', 'reviewer-recommend']\n" ] } ], "prompt_number": 27 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-2 \ud30c\uc77c \uc885\ub958 \uc54c\uc544\ubcf4\uae30\n", "- os.path \ubaa8\ub4c8\uc758 \ub2e4\uc74c \ud568\uc218\ub4e4\uc740 \ud30c\uc77c\uc758 \uc885\ub958\ub97c \ud310\ub2e8\ud558\uc5ec True \ub610\ub294 False\ub97c \ubc18\ud658\ud55c\ub2e4.\n", " - isfile(filepath)\n", " - \uc21c\uc218 \ud30c\uc77c\uc774\uba74 True\n", " - isdir(filepath)\n", " - \ub514\ub809\ud1a0\ub9ac\uc774\uba74 True\n", " - islink(filepath)\n", " - \uc2ec\ubcfc\ub9ad\ub9c1\ud06c\uc774\uba74 True" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "def filetype(fpath):\n", " print fpath, ':',\n", " if os.path.isfile(fpath):\n", " print 'Regular file'\n", " if os.path.isdir(fpath):\n", " print 'Directory'\n", " if os.path.islink(fpath):\n", " print 'Symbolic link'\n", " \n", "flist = os.listdir('.')\n", "for fname in flist:\n", " filetype(fname)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ".DS_Store : Regular file\n", ".git : Directory\n", ".gitignore : Regular file\n", ".ipynb_checkpoints : Directory\n", "example : Directory\n", "files : Directory\n", "images : Directory\n", "module_test.py : Regular file\n", "module_test.pyc : Regular file\n", "music : Regular file\n", "mymath.py : Regular file\n", "mymath.pyc : Regular file\n", "pickle.txt : Regular file\n", "pickle2.txt : Regular file\n", "python01.ipynb : Regular file\n", "python02.ipynb : Regular file\n", "python03.ipynb : Regular file\n", "python04.ipynb : Regular file\n", "python05.ipynb : Regular file\n", "python06.ipynb : Regular file\n", "python07.ipynb : Regular file\n", "python08.ipynb : Regular file\n", "python09.ipynb : Regular file\n", "python10.ipynb : Regular file\n", "python11.ipynb : Regular file\n", "python12.ipynb : Regular file\n", "python13.ipynb : Regular file\n", "python14.ipynb : Regular file\n", "python15.ipynb : Regular file\n", "python16.ipynb : Regular file\n", "python17.ipynb : Regular file\n", "python18.ipynb : Regular file\n", "python19.ipynb : Regular file\n", "python20.ipynb : Regular file\n", "python21.ipynb : Regular file\n", "README.md : Regular file\n", "removeme.txt : Regular file\n", "sample.txt : Regular file\n", "sample_new.txt : Regular file\n", "t.txt : Regular file\n", "t1.txt : Regular file\n", "t2.txt : Regular file\n" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-3 \ud30c\uc77c\uc758 \ud5c8\uac00\uad8c\n", "#### 1) \ud30c\uc77c\uc758 \ud5c8\uac00\uad8c \uc54c\uc544\ubcf4\uae30\n", "- os.access(filepath, mode)\n", " - mode\uc5d0 \ub4e4\uc5b4\uac08 \uac12\n", " - os.F_OK: \ud30c\uc77c \uc790\uccb4\uac00 \uc874\uc7ac\ud558\ub294 \uac83\uc744 \ud14c\uc2a4\ud2b8\n", " - os.R_OK: \uc77d\uae30 \uad8c\ud55c\uc774 \uc788\ub294 \uac83\uc744 \ud14c\uc2a4\ud2b8\n", " - os.W_OK: \uc4f0\uae30 \uad8c\ud55c\uc774 \uc788\ub294 \uac83\uc744 \ud14c\uc2a4\ud2b8\n", " - os.X_OK: \uc2e4\ud589 \uad8c\ud55c\uc774 \uc788\ub294 \uac83(\ub610\ub294 \ub514\ub809\ud1a0\ub9ac\uc778\uc9c0)\uc744 \ud14c\uc2a4\ud2b8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "def fileaccess(fpath):\n", " print fpath, ':',\n", " if os.access(fpath, os.F_OK): \n", " print 'Exists',\n", " else: \n", " return\n", " if os.access(fpath, os.R_OK): \n", " print 'R',\n", " if os.access(fpath, os.W_OK): \n", " print 'W',\n", " if os.access(fpath, os.X_OK): \n", " print 'X',\n", " print \n", " \n", "flist = os.listdir('.')\n", "for fname in flist:\n", " fileaccess(fname)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ".DS_Store : Exists R W\n", ".git : Exists R W X\n", ".gitignore : Exists R W\n", ".ipynb_checkpoints : Exists R W X\n", "example : Exists R W X\n", "files : Exists R W X\n", "images : Exists R W X\n", "module_test.py : Exists R W\n", "module_test.pyc : Exists R W\n", "music : Exists R W\n", "mymath.py : Exists R W\n", "mymath.pyc : Exists R W\n", "pickle.txt : Exists R W\n", "pickle2.txt : Exists R W\n", "python01.ipynb : Exists R W\n", "python02.ipynb : Exists R W\n", "python03.ipynb : Exists R W\n", "python04.ipynb : Exists R W\n", "python05.ipynb : Exists R W\n", "python06.ipynb : Exists R W\n", "python07.ipynb : Exists R W\n", "python08.ipynb : Exists R W\n", "python09.ipynb : Exists R W\n", "python10.ipynb : Exists R W\n", "python11.ipynb : Exists R W\n", "python12.ipynb : Exists R W\n", "python13.ipynb : Exists R W\n", "python14.ipynb : Exists R W\n", "python15.ipynb : Exists R W\n", "python16.ipynb : Exists R W\n", "python17.ipynb : Exists R W\n", "python18.ipynb : Exists R W\n", "python19.ipynb : Exists R W\n", "python20.ipynb : Exists R W\n", "python21.ipynb : Exists R W\n", "README.md : Exists R W\n", "removeme.txt : Exists R W\n", "sample.txt : Exists R W X\n", "sample_new.txt : Exists R W\n", "t.txt : Exists R W\n", "t1.txt : Exists R W\n", "t2.txt : Exists R W\n" ] } ], "prompt_number": 12 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2) \ud30c\uc77c\uc758 \ud5c8\uac00\uad8c \ubcc0\uacbd\ud558\uae30\n", "- os.chmod(filepath, mode)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "os.chmod('sample.txt', 0777) # \ub9ac\ub205\uc2a4\uc5d0\uc11c\uc758 \uc2e4\ud589 \uc608" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "![inheritance](images/chmod.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-4 \ud30c\uc77c \uc870\uc791\ud558\uae30\n", "#### 1) \ud30c\uc77c \uc774\ub984 \ubcc0\uacbd\ud558\uae30\n", "- os.rename(old_filepath, new_filepath)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "os.rename('t.txt', 't1.txt') # t.txt\ub97c t1.txt\ub85c \ubc14\uafbc\ub2e4\n", "print os.access('t.txt', os.F_OK)\n", "print os.access('t1.txt', os.F_OK)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "False\n", "True\n" ] } ], "prompt_number": 17 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2) \ud30c\uc77c \uc774\ub3d9\ud558\uae30\n", "- os.rename(old_filepath, new_filepath)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "os.rename('t1.txt', 'example/t1.txt') # \ud604\uc7ac \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac\uc758 t1.txt\ub97c example\uc5d0 t1.txt\uc774\ub984\uc73c\ub85c \uc62e\uae34\ub2e4.\n", "print os.access('example/t1.txt', os.F_OK)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n" ] } ], "prompt_number": 18 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3) \ud30c\uc77c \ubcf5\uc0ac\ud558\uae30\n", "- shutil \ubaa8\ub4c8 \ud65c\uc6a9\n", "- shutil.copyfile(src_filepath, dest_filepath)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import shutil\n", "shutil.copyfile('sample.txt', 'sample_new.txt')\n", "print os.access('sample_new.txt', os.F_OK)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n" ] } ], "prompt_number": 34 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-5 \ud30c\uc77c \uc774\ub984 \ub2e4\ub8e8\uae30" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1) \uc0c1\ub300 \uacbd\ub85c\ub97c \uc808\ub300 \uacbd\ub85c\ub85c \ubcc0\ud658\ud558\uae30\n", "- os.path.abspath(\uc0c1\ub300\uacbd\ub85c)\n", " - \uc2e4\uc81c \ud30c\uc77c \uc874\uc7ac\uc640\ub294 \ubb34\uad00\ud558\uac8c \uc808\ub300\uacbd\ub85c\ub85c \ubcc0\uacbd\ud568" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "print os.path.abspath('o.txt')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/Users/yhhan/git/python-e-learning/o.txt\n" ] } ], "prompt_number": 51 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2) \uc8fc\uc5b4\uc9c4 \uacbd\ub85c\uc758 \ud30c\uc77c\uc774 \uc874\uc7ac\ud558\ub294\uc9c0 \ud655\uc778\n", "- os.path.exists(filepath)" ] }, { "cell_type": "code", "collapsed": false, "input": [ "f = '/Users/yhhan/git/python-e-learning/sample.txt'\n", "print os.path.exists(f)\n", "print os.path.exists('sample.txt')\n", "print os.path.exists('asdf.txt')" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "True\n", "True\n", "False\n" ] } ], "prompt_number": 54 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3) \ud604\uc7ac/\ubd80\ubaa8 \ub514\ub809\ud1a0\ub9ac\ub97c \uac00\ub9ac\ud0a4\ub294 \uc774\ub984 \uc5bb\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print os.curdir #\ud604\uc7ac \ub514\ub809\ud1a0\ub9ac\n", "print os.pardir #\ubd80\ubaa8 \ub514\ub809\ud1a0\ub9ac" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ ".\n", "..\n" ] } ], "prompt_number": 25 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4) \ub514\ub809\ud1a0\ub9ac \ubd84\ub9ac \ubb38\uc790 \uc5bb\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print os.sep" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/\n" ] } ], "prompt_number": 26 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1-6 \uacbd\ub85c\uba85 \ubd84\ub9ac\ud558\uae30" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1) \uacbd\ub85c\uc640 \ud30c\uc77c\uba85\uc73c\ub85c \ubd84\ub9ac" ] }, { "cell_type": "code", "collapsed": false, "input": [ "f = '/Users/yhhan/git/python-e-learning/t.txt'\n", "\n", "print os.path.basename(f) # \ud30c\uc77c\uba85\ub9cc \ucd94\ucd9c\n", "print os.path.dirname(f) # \ub514\ub809\ud1a0\ub9ac \uacbd\ub85c \ucd94\ucd9c" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "t.txt\n", "/Users/yhhan/git/python-e-learning\n" ] } ], "prompt_number": 57 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2) \uacbd\ub85c\uba85\uacfc \ud30c\uc77c\uba85\uc744 \ud55c\ubc88\uc5d0 \ubd84\ub9ac" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print os.path.split(f)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "('/Users/yhhan/git/python-e-learning', 't.txt')\n" ] } ], "prompt_number": 58 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3) MS \uc708\ub3c4\uc6b0\uc988\uc5d0\uc11c \ub4dc\ub77c\uc774\ube0c\uba85\uacfc \ud30c\uc77c \uacbd\ub85c\uba85\uc744 \ubd84\ub9ac" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print os.path.splitdrive(f)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "('', '/Users/yhhan/git/python-e-learning/t.txt')\n" ] } ], "prompt_number": 59 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4) \ud655\uc7a5\uc790 \ubd84\ub9ac" ] }, { "cell_type": "code", "collapsed": false, "input": [ "print os.path.splitext(f)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "('/Users/yhhan/git/python-e-learning/t', '.txt')\n" ] } ], "prompt_number": 60 }, { "cell_type": "markdown", "metadata": {}, "source": [ "***\n", "## 2 \ub514\ub809\ud1a0\ub9ac \ub2e4\ub8e8\uae30\n", "***" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-1 \ub514\ub809\ud1a0\ub9ac\uc5d0 \uad00\ub828\ub41c \uc77c\ubc18 \uc791\uc5c5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 1) \ud604\uc7ac \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac \uc54c\uc544\ubcf4\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "print os.getcwd()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/Users/yhhan/git/python-e-learning\n" ] } ], "prompt_number": 19 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 2) \uc791\uc5c5 \ub514\ub809\ud1a0\ub9ac \ubcc0\uacbd\ud558\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "os.chdir('/Users/yhhan/Public/')\n", "print os.getcwd()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/Users/yhhan/Public\n" ] } ], "prompt_number": 20 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 3) \ub514\ub809\ud1a0\ub9ac \ub9cc\ub4e4\uae30" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "\n", "os.mkdir('temp') # 0755 \uae30\ubcf8 \ubaa8\ub4dc(rwxr-xr-x)\ub85c \ub9cc\ub4e4\uc5b4\uc9d0\n", "os.mkdir('temp2', 0700) # 0700 \ubaa8\ub4dc(rwx------)\ub85c \ub9cc\ub4e4\uc5b4\uc9d0\n", "os.makedirs('temp/level1/level2') #0755 \uae30\ubcf8 \ubaa8\ub4dc, \uc911\uac04\uc5d0 \ud544\uc694\ud55c \ub514\ub809\ud1a0\ub9ac\ub3c4 \ubaa8\ub450\uc0dd\uc131\n", "\n", "print os.access('/Users/yhhan/Public/temp', os.F_OK)\n", "print os.access('/Users/yhhan/Public/temp2', os.F_OK)\n", "print os.access('/Users/yhhan/Public/temp/level1/level2', os.F_OK)" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "OSError", "evalue": "[Errno 17] File exists: 'temp'", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmkdir\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'temp'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# 0755 \uae30\ubcf8 \ubaa8\ub4dc(rwxr-xr-x)\ub85c \ub9cc\ub4e4\uc5b4\uc9d0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 4\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmkdir\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'temp2'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0700\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m# 0700 \ubaa8\ub4dc(rwx------)\ub85c \ub9cc\ub4e4\uc5b4\uc9d0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmakedirs\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'temp/level1/level2'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#0755 \uae30\ubcf8 \ubaa8\ub4dc, \uc911\uac04\uc5d0 \ud544\uc694\ud55c \ub514\ub809\ud1a0\ub9ac\ub3c4 \ubaa8\ub450\uc0dd\uc131\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", "\u001b[0;31mOSError\u001b[0m: [Errno 17] File exists: 'temp'" ] } ], "prompt_number": 13 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 4) \ub514\ub809\ud1a0\ub9ac \uc0ad\uc81c" ] }, { "cell_type": "code", "collapsed": false, "input": [ "os.rmdir('temp2') #\ub514\ub809\ud1a0\ub9ac\uc5d0 \ub0b4\uc6a9\uc774 \uc5c6\uc744 \ub54c \uc0ad\uc81c\uac00\ub2a5" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 42 }, { "cell_type": "code", "collapsed": false, "input": [ "os.rmdir('temp') #\ub514\ub809\ud1a0\ub9ac\uc5d0 \ub2e4\ub978 \ud30c\uc77c\uc774 \uc788\uc73c\uba74 \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc74c" ], "language": "python", "metadata": {}, "outputs": [ { "ename": "OSError", "evalue": "[Errno 66] Directory not empty: 'temp'", "output_type": "pyerr", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[0;31mOSError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mos\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrmdir\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'temp'\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;31m#\ub514\ub809\ud1a0\ub9ac\uc5d0 \ub2e4\ub978 \ud30c\uc77c\uc774 \uc788\uc73c\uba74 \uc0ad\uc81c\ud560 \uc218 \uc5c6\uc74c\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mOSError\u001b[0m: [Errno 66] Directory not empty: 'temp'" ] } ], "prompt_number": 43 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 5) \ub2e4\ub2e8\uacc4 \ub514\ub809\ud1a0\ub9ac \uc0ad\uc81c\n", "- os.removedirs(filepath)\n", " - filepath\uc5d0 \uc9c0\uc815\ub41c \ub514\ub809\ud1a0\ub9ac\ub4e4 \uc911 \ub9e8 \uc624\ub978\ucabd \ub514\ub809\ud1a0\ub9ac \ubd80\ud130 \ucc28\ub840\ucc28\ub840\ub85c \uc0ad\uc81c\ud55c\ub2e4.\n", " - \ub514\ub809\ud1a0\ub9ac\uc5d0 \ub2e4\ub978 \ud30c\uc77c\uc774 \uc788\uc73c\uba74 \uc0ad\uc81c\ud558\uae30 \uc54a\uace0 \uc911\ub2e8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "os.removedirs('temp/level1/level2')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 79 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 6) \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\uae4c\uc9c0 \ubaa8\ub450 \ud55c\ubc88\uc5d0 \uc0ad\uc81c\n", "- shutil.rmtree() \n", " - \ud30c\uc77c\uc740 \ubb3c\ub860 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\uae4c\uc9c0 \ubaa8\ub450 \ud55c\ubc88\uc5d0 \uc0ad\uc81c \uac00\ub2a5\n", " - \uc870\uc2ec\ud574\uc11c \uc0ac\uc6a9\ud574\uc57c \ud568" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import shutil\n", "shutil.rmtree('temp')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 22 }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### 7) \ub514\ub809\ud1a0\ub9ac \ubcf5\uc0ac\n", "- shutil.copytree(src_filepath, dest_filepath)\n", " - \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\uc640 \ud30c\uc77c\ub4f1\uc744 \uc9c0\ub2c8\uace0 \uc788\ub294 \ub514\ub809\ud1a0\ub9ac\ub97c \ubcf5\uc0ac" ] }, { "cell_type": "code", "collapsed": false, "input": [ "os.mkdir('temp') \n", "os.mkdir('temp/temp2', 0700)\n", "shutil.copytree('temp', 'myweb_backup')" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 23 }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 2-2 \ub514\ub809\ud1a0\ub9ac(\ud2b8\ub9ac) \ud0d0\uc0c9\ud558\uae30\n", "- os.walk(filepath)\n", " - filepath \ubd80\ud130 \uc2dc\uc791\ud558\uc5ec \uc7ac\uadc0\uc801\uc73c\ub85c \ubaa8\ub4e0 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac\uae4c\uc9c0 \ud0d0\uc0c9\uc744 \ud558\ub294 \ud568\uc218\n", " - \ud0d0\uc0c9\uc2dc \ubc1c\uacac\ud558\ub294 \ubaa8\ub4e0 \ud30c\uc77c\uc5d0 \ub300\ud574\uc11c\ub294 \ub2e4\uc74c \ud29c\ud50c\uc744 \ub9ac\ud134\ud568\n", " - (dirpath, dirnames, filemnames)\n", " - dirpath: \ud0d0\uc0c9\ud558\uace0 \uc788\ub294 \ub514\ub809\ud1a0\ub9ac \uacbd\ub85c\n", " - dirnames: dirpath \uc548\uc5d0 \uc874\uc7ac\ud558\ub294 \uc11c\ube0c \ub514\ub809\ud1a0\ub9ac\uc758 \ub9ac\uc2a4\ud2b8\n", " - filenames: dirpath \uc548\uc5d0 \uc874\uc7ac\ud558\ub294 \ud30c\uc77c \ub9ac\uc2a4\ud2b8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "- \uc544\ub798 \uc608\ub294 \ud604\uc7ac \ub514\ub809\ud1a0\ub9ac\ubd80\ud130 \ubaa8\ub4e0 \ud558\uc704 \ub514\ub809\ud1a0\ub9ac \ub0b4\uc5d0 \uc874\uc7ac\ud558\ub294 \ubaa8\ub4e0 pyc \ud30c\uc77c\uc744 \uc0ad\uc81c\ud558\ub294 \ud504\ub85c\uadf8\ub7a8" ] }, { "cell_type": "code", "collapsed": false, "input": [ "import os\n", "os.chdir('/Users/yhhan/git/python-e-learning')\n", "print os.getcwd()\n", "print\n", "for path, subdirs, files in os.walk(os.getcwd()):\n", " for fname in files:\n", " if fname.endswith('.pyc'):\n", " fullpath = os.path.join(path, fname)\n", " print 'removing', fullpath\n", " os.remove(fullpath)" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "/Users/yhhan/git/python-e-learning\n", "\n", "removing /Users/yhhan/git/python-e-learning/module_test.pyc\n", "removing /Users/yhhan/git/python-e-learning/mymath.pyc\n" ] } ], "prompt_number": 24 }, { "cell_type": "markdown", "metadata": {}, "source": [ "

\ucc38\uace0 \ubb38\ud5cc: \ud30c\uc774\uc36c(\uc5f4\ud608\uac15\uc758)(\uac1c\uc815\ud310 VER.2), \uc774\uac15\uc131, FreeLec, 2005\ub144 8\uc6d4 29\uc77c

" ] } ], "metadata": {} } ] }