Source: https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-9-file-handling

[Revision notes](https://senecalearning.com/en-gb/revision-notes.md) › [KS3](https://senecalearning.com/en-gb/revision-notes/ks3.md) › [Computer Science](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science.md) › [Computer Science: KS3](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3.md) › File Handling

# File Handling

Computer Science: KS3, topic 2.3.9

## File Handling

We must be careful with the way that we access files so that we do not accidentally corrupt them.

### Open the file

![Open the file](https://image-v2.cdn.app.senecalearning.com/2020-08/c948165c-a8f0-4326-b157-de6e16db9e0d/door-open-entrance-open-door.jpg)

- First, we open the file for use, so that the program can read from or write to it.
- We can do this using:
 - open("filename.txt", "r")
 - open("filename.txt", "w")
- Opening with "r" will allow you to read from the file.
- Opening with "w" will allow you to write to the file.

### Assign the file to a variable

![Assign the file to a variable](https://image-v2.cdn.app.senecalearning.com/2018-09/9e5843e2-42b9-4a41-8fa5-a2bf2240f09d/filing-cabinet-files-.png)

- The file must be assigned to a variable so that we can keep referring to it.
- This can be done as follows:
 - myFile = open("filename.txt", "r")
 - myFile = open("filename.txt", "w")

### Read / write

![Read / write](https://image-v2.cdn.app.senecalearning.com/2018-07/8a85e66f-79f5-4eec-b73c-ce40108d53b6/quran-reading-studying.jpg)

- We can now read or write to the file using the following commands:
 - myFile.readline() will return the next line of a file as a string.
 - myFile.write() will write a line to the file.

### Close the file

![Close the file](https://image-v2.cdn.app.senecalearning.com/2018-09/9daa7ad5-ad60-409e-984b-4a72612e8502/books.jpg)

- Finally, we must close the file so that it is free for another program to access.
- We can do this using:
 - myFile.close()

## Test yourself on File Handling

- File Handling
- Which of these are valid file handling methods?
- If we don't use the correct methods to access files, what might happen?
- Why must we close a file?

[Practise this topic for free](https://app.senecalearning.com/classroom/course/b89946c5-cfe7-42d6-ae51-9b4631a07589/section/0108c8aa-b0b6-4d66-8653-721787d8dde0/session)

- Previous topic: [2.3.8 Files](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-8-files.md)
- Next topic: [2.3.10 Identifiers](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-10-identifiers.md)

## Computer Science: KS3 contents

### 1 Computational Thinking & Algorithms
- 1.1 Computational Thinking
  - [1.1.1 Abstraction Thinking](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-1-1-abstraction-thinking.md)
  - [1.1.2 Decomposition Thinking](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-1-2-decomposition-thinking.md)
  - [1.1.3 Algorithmic Thinking](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-1-3-algorithmic-thinking.md)
- 1.2 Algorithms
  - [1.2.1 Algorithms](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-1-algorithms.md)
  - [1.2.2 Pseudocode](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-2-pseudocode.md)
  - [1.2.3 Flow Diagrams](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-3-flow-diagrams.md)
  - [1.2.4 Logical Reasoning & Debugging](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-4-logical-reasoning-and-debugging.md)
  - [1.2.5 Reading Algorithms](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-5-reading-algorithms.md)
  - [1.2.6 Correcting Algorithms](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-6-correcting-algorithms.md)
  - [1.2.7 Complete the Algorithm](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-7-complete-the-algorithm.md)
  - [1.2.8 Search Algorithms](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-8-search-algorithms.md)
  - [1.2.9 Linear Search](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-9-linear-search.md)
  - [1.2.10 Binary Search](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-10-binary-search.md)
  - [1.2.11 Sort Algorithms](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-11-sort-algorithms.md)
  - [1.2.12 Bubble Sort](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-12-bubble-sort.md)
  - [1.2.13 Insertion Sort](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-13-insertion-sort.md)
  - [1.2.14 End of Topic Test - Algorithms](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/1-2-14-end-of-topic-test-algorithms.md)

### 2 Programming
- 2.1 Programming Fundamentals
  - [2.1.1 Variables & Constants](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-1-variables-and-constants.md)
  - [2.1.2 Comments](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-2-comments.md)
  - [2.1.3 Input & Output](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-3-input-and-output.md)
  - [2.1.4 Arithmetic Operators](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-4-arithmetic-operators.md)
  - [2.1.5 Relational Operators](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-5-relational-operators.md)
  - [2.1.6 Boolean Operators](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-6-boolean-operators.md)
  - [2.1.7 Sequence](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-7-sequence.md)
  - [2.1.8 Selection](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-8-selection.md)
  - [2.1.9 Iteration](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-9-iteration.md)
  - [2.1.10 Subroutines](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-10-subroutines.md)
  - [2.1.11 Scope](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-11-scope.md)
  - [2.1.12 Data Types](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-12-data-types.md)
  - [2.1.13 Casting](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-13-casting.md)
  - [2.1.14 Arrays](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-14-arrays.md)
  - [2.1.15 2D Arrays](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-15-2d-arrays.md)
  - [2.1.16 Lists](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-16-lists.md)
  - [2.1.17 2D Lists](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-17-2d-lists.md)
  - [2.1.18 Strings](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-18-strings.md)
  - [2.1.19 Syntax Errors](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-19-syntax-errors.md)
  - [2.1.20 Logic Errors](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-20-logic-errors.md)
  - [2.1.21 Runtime Errors](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-21-runtime-errors.md)
  - [2.1.22 End of Topic Test - Programming](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-1-22-end-of-topic-test-programming.md)
- 2.2 Designing Code
  - [2.2.1 Code](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-2-1-code.md)
  - [2.2.2 Programs](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-2-2-programs.md)
  - [2.2.3 Writing Your Own Program](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-2-3-writing-your-own-program.md)
  - [2.2.4 Designing a ‘Basketball’ Game](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-2-4-designing-a-basketball-game.md)
  - [2.2.5 Turning an Algorithm into an App](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-2-5-turning-an-algorithm-into-an-app.md)
  - [2.2.6 End of Topic Test - Designing Code](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-2-6-end-of-topic-test-designing-code.md)
- 2.3 Python
  - [2.3.1 Introduction to Python](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-1-introduction-to-python.md)
  - [2.3.2 Input](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-2-input.md)
  - [2.3.3 Output](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-3-output.md)
  - [2.3.4 Casting](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-4-casting.md)
  - [2.3.5 Type Coercion](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-5-type-coercion.md)
  - [2.3.6 Selection](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-6-selection.md)
  - [2.3.7 Iteration](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-7-iteration.md)
  - [2.3.8 Files](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-8-files.md)
  - [2.3.9 File Handling](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-9-file-handling.md)
  - [2.3.10 Identifiers](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-10-identifiers.md)
  - [2.3.11 Whitespace](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-11-whitespace.md)
  - [2.3.12 Comments](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-12-comments.md)
  - [2.3.13 Exceptions](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/2-3-13-exceptions.md)

### 3 Hardware & Software
- 3.1 Hardware
  - [3.1.1 Elements of Computer Systems](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-1-elements-of-computer-systems.md)
  - [3.1.2 Central Processing Unit (CPU)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-2-central-processing-unit-cpu.md)
  - [3.1.3 Registers of the Central Processing Unit (CPU)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-3-registers-of-the-central-processing-unit-cpu.md)
  - [3.1.4 Factors Affecting CPU Performance](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-4-factors-affecting-cpu-performance.md)
  - [3.1.5 Fetch-Decode-Execute Cycle](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-5-fetch-decode-execute-cycle.md)
  - [3.1.6 Binary Systems](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-6-binary-systems.md)
  - [3.1.7 Logic Circuits](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-7-logic-circuits.md)
  - [3.1.8 Boolean Logic](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-8-boolean-logic.md)
  - [3.1.9 End of Topic Test - Logic](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-1-9-end-of-topic-test-logic.md)
- 3.2 Software
  - [3.2.1 System Software](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/3-2-1-system-software.md)

### 4 Data
- 4.1 Representing Data
  - [4.1.1 Binary](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-1-binary.md)
  - [4.1.2 Converting Binary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-2-converting-binary-and-hexadecimal.md)
  - [4.1.3 Converting Denary & Hexadecimal](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-3-converting-denary-and-hexadecimal.md)
  - [4.1.4 Binary Arithmetic](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-4-binary-arithmetic.md)
  - [4.1.5 Representing Sound](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-5-representing-sound.md)
  - [4.1.6 Representing Images](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-6-representing-images.md)
  - [4.1.7 Character Sets](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-7-character-sets.md)
  - [4.1.8 American Standard Code for Information Interchange](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-8-american-standard-code-for-information-interchange.md)
  - [4.1.9 Unicode](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-9-unicode.md)
  - [4.1.10 End of Topic Test - Representation](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/4-1-10-end-of-topic-test-representation.md)

### 5 The Internet
- 5.1 Networks
  - [5.1.1 Networks](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-1-networks.md)
  - [5.1.2 Geographical Classification of Networks](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-2-geographical-classification-of-networks.md)
  - [5.1.3 What is the Internet?](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-3-what-is-the-internet.md)
  - [5.1.4 The World Wide Web](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-4-the-world-wide-web.md)
  - [5.1.5 Uniform Resource Locators (URLs)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-5-uniform-resource-locators-urls.md)
  - [5.1.6 Web Hosting](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-6-web-hosting.md)
  - [5.1.7 HTML](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-7-html.md)
  - [5.1.8 Searching the World Wide Web](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-8-searching-the-world-wide-web.md)
  - [5.1.9 Good Searching Tips](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-9-good-searching-tips.md)
  - [5.1.10 Are You Looking at Reliable Information?](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/5-1-10-are-you-looking-at-reliable-information.md)

### 6 Online Safety & Security
- 6.1 Protecting Yourself Online
  - [6.1.1 Digital Footprints](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-1-digital-footprints.md)
  - [6.1.2 Leaving a Safe Online Footprint](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-2-leaving-a-safe-online-footprint.md)
  - [6.1.3 Online Safety](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-3-online-safety.md)
  - [6.1.4 Malware - Viruses](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-4-malware-viruses.md)
  - [6.1.5 Malware](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-5-malware.md)
  - [6.1.6 People Online](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-6-people-online.md)
  - [6.1.7 Your Feelings](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-7-your-feelings.md)
  - [6.1.8 Getting Help](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-1-8-getting-help.md)
- 6.2 Computing and the Law
  - [6.2.1 Data Protection Act (1998)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-1-data-protection-act-1998.md)
  - [6.2.2 Computer Misuse Act (1990)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-2-computer-misuse-act-1990.md)
  - [6.2.3 Freedom of Information Act (2000)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-3-freedom-of-information-act-2000.md)
  - [6.2.4 Plagiarism](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-4-plagiarism.md)
  - [6.2.5 Copyright](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-5-copyright.md)
  - [6.2.6 Copyright Designs and Patents Act (1988)](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-6-copyright-designs-and-patents-act-1988.md)
  - [6.2.7 Creative Commons Licensing](https://senecalearning.com/en-gb/revision-notes/ks3/computer-science/computer-science-ks3/6-2-7-creative-commons-licensing.md)
