{
 "metadata": {
  "name": "",
  "signature": "sha256:3c3bf16deef4fec8e871033ad86caaf2229bc23c73902bfdcf895c53cd295312"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Hour 21 : Reading and Writing with Files"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 21.1, Page No 359"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "try:\n",
      "    filename = \"haiku.txt\"\n",
      "    reval = \"SUCCESS\"\n",
      "    fptr = open(filename,\"r\")\n",
      "    if(not isinstance(fptr,file)):\n",
      "        print \"\\nCan not open \",filename,\"\\n\"\n",
      "        reval = \"FAIL\"\n",
      "    else:\n",
      "        print \"The value of fptr: \",fptr,\"\\n\"\n",
      "        print \"Ready to close the file.\"\n",
      "        fptr.close()\n",
      "except IOError:\n",
      "    print \"\\nFile can not be opened\\n\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "The value of fptr:  <open file 'haiku.txt', mode 'r' at 0x000000000394DB70> \n",
        "\n",
        "Ready to close the file.\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 21.2, Page No 361"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def CharReadWrite(fin,fout):\n",
      "    while(1):\n",
      "        c = fin.readline()\n",
      "        if c == \"\":\n",
      "            break\n",
      "        else:\n",
      "            print c\n",
      "            fout.writelines(c)\n",
      "try:\n",
      "    filename1 = \"outhaiku.txt\"\n",
      "    filename2 = \"haiku.txt\"\n",
      "    reval = \"SUCCESS\"\n",
      "    fptr1 = open(filename1,\"w\")\n",
      "    fptr2 = open(filename2,\"r\")\n",
      "    if(not isinstance(fptr1,file)):\n",
      "        print \"\\nCan not open \",filename1,\"\\n\"\n",
      "        reval = \"FAIL\"\n",
      "    elif(not isinstance(fptr1,file)):\n",
      "        print \"\\nCan not open \",filename2,\"\\n\"\n",
      "        reval = \"FAIL\"\n",
      "    else:\n",
      "        CharReadWrite(fptr2,fptr1)\n",
      "        fptr1.close()\n",
      "        fptr2.close()\n",
      "except IOError:\n",
      "    print \"\\nFile can not be opened\\n\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Leading me along\n",
        "\n",
        "my shadow goes back home\n",
        "\n",
        "from looking at the moon.\n",
        "\n",
        "--- Sodo\n",
        "\n",
        "(1641-1716)\n",
        "\n",
        "A storm wind blows\n",
        "\n",
        "out from among the grasses\n",
        "\n",
        "the full moon grows.\n",
        "\n",
        "--- Chora\n",
        "\n",
        "(1729-1781)\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 21.3, Page No 364"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def LineReadWrite(fin,fout):\n",
      "    while(1):\n",
      "        c = fin.readline()\n",
      "        if c == \"\":\n",
      "            break\n",
      "        else:\n",
      "            print c\n",
      "            fout.writelines(c)\n",
      "try:\n",
      "    filename1 = \"outhaiku.txt\"\n",
      "    filename2 = \"haiku.txt\"\n",
      "    reval = \"SUCCESS\"\n",
      "    fptr1 = open(filename1,\"w\")\n",
      "    fptr2 = open(filename2,\"r\")\n",
      "    if(not isinstance(fptr1,file)):\n",
      "        print \"\\nCan not open \",filename1,\"\\n\"\n",
      "        reval = \"FAIL\"\n",
      "    elif(not isinstance(fptr1,file)):\n",
      "        print \"\\nCan not open \",filename2,\"\\n\"\n",
      "        reval = \"FAIL\"\n",
      "    else:\n",
      "        LineReadWrite(fptr2,fptr1)\n",
      "        fptr1.close()\n",
      "        fptr2.close()\n",
      "except IOError:\n",
      "    print \"\\nFile can not be opened\\n\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Leading me along\n",
        "\n",
        "my shadow goes back home\n",
        "\n",
        "from looking at the moon.\n",
        "\n",
        "--- Sodo\n",
        "\n",
        "(1641-1716)\n",
        "\n",
        "A storm wind blows\n",
        "\n",
        "out from among the grasses\n",
        "\n",
        "the full moon grows.\n",
        "\n",
        "--- Chora\n",
        "\n",
        "(1729-1781)\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 21.4, Page No 368"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "def BlockReadWrite(fin,fout):\n",
      "    while(1):\n",
      "        c = fin.readline()\n",
      "        if c == \"\":\n",
      "            break\n",
      "        else:\n",
      "            print c\n",
      "            fout.writelines(c)\n",
      "def ErrorMsg(str1):\n",
      "    print \"Cannot open: \",str1,\"\\n\"\n",
      "    return FAIL\n",
      "try:\n",
      "    filename1 = \"outhaiku.txt\"\n",
      "    filename2 = \"haiku.txt\"\n",
      "    reval = \"SUCCESS\"\n",
      "    fptr1 = open(filename1,\"w\")\n",
      "    fptr2 = open(filename2,\"r\")\n",
      "    if(not isinstance(fptr1,file)):\n",
      "        print \"\\nCan not open \",filename1,\"\\n\"\n",
      "        reval = ErrorMsg(filename1)\n",
      "    elif(not isinstance(fptr1,file)):\n",
      "        print \"\\nCan not open \",filename2,\"\\n\"\n",
      "        reval = ErrorMsg(filename2)\n",
      "    else:\n",
      "        BlockReadWrite(fptr2,fptr1)\n",
      "        fptr1.close()\n",
      "        fptr2.close()\n",
      "except IOError:\n",
      "    print \"\\nFile can not be opened\\n\""
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Leading me along\n",
        "\n",
        "my shadow goes back home\n",
        "\n",
        "from looking at the moon.\n",
        "\n",
        "--- Sodo\n",
        "\n",
        "(1641-1716)\n",
        "\n",
        "A storm wind blows\n",
        "\n",
        "out from among the grasses\n",
        "\n",
        "the full moon grows.\n",
        "\n",
        "--- Chora\n",
        "\n",
        "(1729-1781)\n"
       ]
      }
     ],
     "prompt_number": 3
    }
   ],
   "metadata": {}
  }
 ]
}