{
 "metadata": {
  "name": "",
  "signature": "sha256:218fbe19da172953280529e0559355d55a34bf2741e9ecd127042579a2a52e47"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Chapter 16: Managing Input/Output file"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "example 16.1, page no. 300"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "fr = open(\"input.txt\", \"r\")\n",
      "fw = open(\"output.txt\", \"w\")\n",
      "my_str = fr.readline()\n",
      "\n",
      "for letter in my_str:\n",
      "   fw.write(letter)   \n",
      "#close a file\n",
      "fr.close()\n",
      "fw.close()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.2, page no. 303"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "fw = open(\"cities.txt\", \"w\")\n",
      "cities = ['Delhi\\n','Madras\\n','London\\n'];\n",
      "count = len(cities)\n",
      "for city in cities:\n",
      "    fw.write(city)   \n",
      "fw.close()\n",
      "fr = open(\"cities.txt\", \"r\")\n",
      "for line in fr.readlines():\n",
      "    print line,"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Delhi\n",
        "Madras\n",
        "London\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.3 is done using CLI which is not possible in IPython Notebook"
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.4, page no. 305"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "\"\"\"\n",
      "there is no bytes stream in Python. We will use normal file operations to copy from one file to another\n",
      "\"\"\"\n",
      "\n",
      "fr = open(\"in.txt\", \"r\")\n",
      "fw = open(\"out.txt\", \"w\")\n",
      "for line in fr.readlines():\n",
      "   fw.write(line)       \n",
      "fr.close()\n",
      "fw.close()\n",
      "\n",
      "fw = open(\"out.txt\", \"r\")\n",
      "for line in fw.readlines():\n",
      "    print line"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Java programming for internet.\n",
        "\n",
        "Javascript for webpage develpoment.\n",
        "\n",
        "Perl for server side scripting.\n",
        "\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.5, page no. 307"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\"\"\"\n",
      "Note: In Python you can store data in file only as string.\n",
      "\"\"\"\n",
      "\n",
      "fos = open(\"prim.dat\", \"w\")\n",
      "fos.write(str(1999)+'\\n')\n",
      "fos.write(str(375.85)+'\\n')\n",
      "fos.write(str(False)+'\\n')\n",
      "fos.write(\"x\"+'\\n')\n",
      "fos.close()\n",
      "\n",
      "fis = open(\"prim.dat\", \"r\")\n",
      "for line in fis.readlines():\n",
      "    print line\n",
      "fis.close()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "1999\n",
        "\n",
        "375.85\n",
        "\n",
        "False\n",
        "\n",
        "x\n",
        "\n"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.6, page no. 308"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "from random import *\n",
      "\n",
      "dos = open(\"rand.dat\", \"w\")\n",
      "try:\n",
      "    for i in range(20):\n",
      "        dos.write(str(randint(0,100))+'\\n')\n",
      "except IOError:\n",
      "    print IOError.message\n",
      "finally:\n",
      "    dos.close()\n",
      "\n",
      "dis = open(\"rand.dat\", \"r\")\n",
      "# Note: random numbers are generated so output will differ from that given in the textbook.\n",
      "for line in dis.readlines():\n",
      "    print line,"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "92\n",
        "49\n",
        "68\n",
        "67\n",
        "71\n",
        "25\n",
        "85\n",
        "53\n",
        "10\n",
        "87\n",
        "15\n",
        "5\n",
        "33\n",
        "30\n",
        "72\n",
        "52\n",
        "80\n",
        "85\n",
        "36\n",
        "84\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.7, page no. 310"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "file1 = open(\"file1.txt\", \"r\")\n",
      "file2 = open(\"file2.txt\", \"r\")\n",
      "file3 = open(\"file3.txt\", \"a\")\n",
      "\n",
      "for line in file1.readlines():\n",
      "    file3.write(line)\n",
      "for line in file2.readlines():\n",
      "    file3.write(line)\n",
      "    \n",
      "file1.close()\n",
      "file2.close()\n",
      "file3.close()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.8, page no. 312"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "fp = open(\"random.dat\", \"w+\")\n",
      "fp.write(\"x\\n\")\n",
      "fp.write(str(555)+'\\n')\n",
      "fp.write(str(3.1412)+'\\n')\n",
      "fp.seek(0)\n",
      "print fp.readline()\n",
      "print fp.readline()\n",
      "print fp.readline()\n",
      "fp.seek(2)\n",
      "print fp.readline()\n",
      "fp.seek(fp.tell()+len(fp.readline()))\n",
      "fp.write(\"False\\n\")\n",
      "fp.seek(13)\n",
      "print fp.readline()\n",
      "fp.close()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "x\n",
        "\n",
        "555\n",
        "\n",
        "3.1412\n",
        "\n",
        "555\n",
        "\n",
        "False\n",
        "\n"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.9, page no. 314"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "fp = open(\"cities.txt\", \"a\")\n",
      "fp.write(\"Mumbai\\n\")\n",
      "fp.close()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 85
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Example 16.10, page no. 315"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "\n",
      "dos = open(\"invent.dat\", \"w\")\n",
      "dos.write(raw_input(\"Enter code number: \")+'\\n')\n",
      "dos.write(raw_input(\"Enter number of items: \")+'\\n')\n",
      "dos.write(raw_input(\"Enter cost: \")+'\\n')\n",
      "dos.close()\n",
      "dis = open(\"invent.dat\", \"r\")\n",
      "codeNumber = int(dis.readline())\n",
      "totalItems = int(dis.readline())\n",
      "itemCost = int(dis.readline())\n",
      "totalCost = totalItems*itemCost\n",
      "dis.close()\n",
      "\n",
      "print \"Code Number: \", codeNumber\n",
      "print \"Item Cost: \", itemCost\n",
      "print \"Total Items: \", totalItems\n",
      "print \"Total Cost: \",  totalCost"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter code number: 1001\n"
       ]
      },
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter number of items: 193\n"
       ]
      },
      {
       "name": "stdout",
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Enter cost: 452\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Code Number:  1001\n",
        "Item Cost:  452\n",
        "Total Items:  193\n",
        "Total Cost:  87236\n"
       ]
      }
     ],
     "prompt_number": 91
    }
   ],
   "metadata": {}
  }
 ]
}