3-1-5-17. Reading and Writing Files

In order for a program to be really useful,

it needs to interact with real-world data.

Images, web pages, and databases are all examples of files,

and we routinely create, move,

manipulate, and read these files in our daily digital lives.

All the data we’ve used so far has been defined inside

the Python script or raw input from the user during execution of the script.

Next, we’re going to massively increase the variety of what we can achieve in

our Python programming by introducing how to read and write files in Python.

This will allow us to interact with and process

larger amounts of information from many more sources.

All kinds of files have a similar structure on a computer.

There are strings of characters that encode some information.

The specific file format,

often indicated by the extension of the file name such as.py,

TXT, HTM, CSV, and many more,

will indicate how those characters are organized.

The characters in a file are interpreted by

the various programs we use to interact with them.

For example, an image editing program will interpret

the information of a digital photograph file and display the image.

If we then edit the image in the program,

were using this program to make changes to the characters in the file.

In Python, we can read those file characters directly.

The experience will seem quite different from opening a file in a desktop application.

Opening files in Python gives us

a common programmatic interface to all kinds of

files without the need for a graphical user interface,

which means we can automate tasks involving files with Python programs.

정말 유용한 프로그램이 되기 위해서는

실제 데이터와 상호 작용해야 합니다.

이미지, 웹 페이지 및 데이터베이스는 모두 파일의 예입니다.

우리는 일상적으로 만들고, 움직이고,

일상적인 디지털 생활에서 이러한 파일을 조작하고 읽습니다.

지금까지 사용한 모든 데이터는 내부에 정의되어 있습니다.

Python 스크립트 또는 스크립트 실행 중 사용자의 원시 입력.

다음으로, 우리가 달성할 수 있는 것의 다양성을 대폭 늘릴 것입니다

Python에서 파일을 읽고 쓰는 방법을 소개하여 Python 프로그래밍을 소개합니다.

이를 통해 우리는 상호 작용하고 처리할 수 있습니다.

더 많은 소스에서 더 많은 양의 정보를 얻을 수 있습니다.

모든 종류의 파일은 컴퓨터에서 유사한 구조를 가지고 있습니다.

일부 정보를 인코딩하는 문자열이 있습니다.

특정 파일 형식,

종종 .py와 같은 파일 이름의 확장자로 표시됩니다.

TXT, HTM, CSV 등

해당 문자가 구성되는 방식을 나타냅니다.

파일의 문자는 다음과 같이 해석됩니다.

우리가 그들과 상호 작용하기 위해 사용하는 다양한 프로그램.

예를 들어 이미지 편집 프로그램은

디지털 사진 파일의 정보를 표시하고 이미지를 표시합니다.

그런 다음 프로그램에서 이미지를 편집하면

이 프로그램을 사용하여 파일의 문자를 변경했습니다.

Python에서는 해당 파일 문자를 직접 읽을 수 있습니다.

경험은 데스크탑 응용 프로그램에서 파일을 여는 것과 상당히 다르게 보일 것입니다.

Python에서 파일을 열면

모든 종류의 공통 프로그래밍 인터페이스

그래픽 사용자 인터페이스가 필요 없는 파일,

이는 Python 프로그램으로 파일과 관련된 작업을 자동화할 수 있음을 의미합니다.

Let’s see how we read information from a file into Python.

To read from a file,

we first need to open it,

which we can accomplish with the built-in function open.

We include a string with the path to

the file along with any optional parameters we want to specify.

The open function returns a file object which is

a Python object through which Python interacts with the file itself.

Here we assigned this file object to the variable f.

This second optional parameter specifies the mode in which we open the file.

In this case r, or read only.

We are using this mode since we only want to read from the file.

We don’t want to change any of its contents.

This parameter isn’t really necessary for us to include here,

though, since the mode defaults to read only if unspecified.

Once we opened a file and created a file object,

we can use the read method to access the contents of this file.

This read method takes the text contained in a file and puts it into a string.

Here we assign the string returned from this method into the variable file_data.

When we are finished with the file f, we should close it.

This will free up any system resources taken up by the file.

Here’s an example that uses this file, some_file.txt.

It’s important to remember

to always close files we have opened once we no longer need them.

If we open a lot of files without closing them,

we can run out of file handles and we won’t be able to open any new files.

Exactly how many files you can open before

running out of handles will depend on your operating system.

To convince yourself, you can try running the following script in Python.

At some point for a large enough number,

you will receive an error.

We can see that at 7164 open files,

the system no longer had available resources to open any new files.

To avoid this, it is always a good idea to close any files you no longer need.

Opening a file object is like opening a window to look into a file.

To be more precise,

it’s a window that’s only one character

wide and it always starts off at the very start of the file.

This is very different from reading a book or a document,

where you can look at multiple words or even pages at once.

Think instead of the file as a long stream of characters.

The file object can look at just one character at a time and order.

In addition to reading from a file,

you can also write to a file,

in which case you will change the content of the file.

To do so, you must open the file in writing mode.

Be careful, once you open a file in writing mode,

anything that it contained previously will be deleted.

If you’re interested in adding to an existing file without deleting its content,

you should use append instead of write.

You can visit the Python documentation for

more information on the different modes in which you can open a file.

Since we’re in write mode and I don’t want to delete what’s in this file,

let’s use another one.

If the file does not exist,

Python will create it for you.

We can now write to the file like this,

and after we’re done we will close it like good citizens.

Here you can see that Python created another file which contains the text “Hello World!”

파일에서 Python으로 정보를 읽는 방법을 살펴보겠습니다.

파일에서 읽으려면,

먼저 열어야 합니다.

내장 함수를 열어서 수행할 수 있습니다.

경로가 있는 문자열을 포함합니다.

지정하려는 선택적 매개변수와 함께 파일.

open 함수는 다음과 같은 파일 객체를 반환합니다.

Python이 파일 자체와 상호 작용하는 Python 개체입니다.

여기서 우리는 이 파일 객체를 변수 f에 할당했습니다.

이 두 번째 선택적 매개변수는 파일을 여는 모드를 지정합니다.

이 경우 r 또는 읽기 전용입니다.

파일에서 읽기만 하기 때문에 이 모드를 사용하고 있습니다.

내용을 변경하고 싶지 않습니다.

이 매개변수는 여기에 포함할 필요가 없습니다.

그러나 지정되지 않은 경우 모드가 기본적으로 읽기 전용이기 때문입니다.

파일을 열고 파일 객체를 생성하면,

read 메소드를 사용하여 이 파일의 내용에 액세스할 수 있습니다.

이 읽기 메서드는 파일에 포함된 텍스트를 가져와 문자열에 넣습니다.

여기에서 이 메서드에서 반환된 문자열을 file_data 변수에 할당합니다.

f 파일 작업이 끝나면 파일을 닫아야 합니다.

이렇게 하면 파일이 차지하는 모든 시스템 리소스가 해제됩니다.

다음은 이 파일(some_file.txt)을 사용하는 예입니다.

기억하는 것이 중요하다

더 이상 필요하지 않으면 열어본 파일을 항상 닫습니다.

파일을 닫지 않고 많이 열면

파일 핸들이 부족할 수 있으며 새 파일을 열 수 없습니다.

이전에 열 수 있는 파일의 정확한 수

핸들 부족은 운영 체제에 따라 다릅니다.

자신을 확신시키기 위해 Python에서 다음 스크립트를 실행해 볼 수 있습니다.

어느 시점에서 충분히 큰 숫자에 대해,

오류가 발생합니다.

7164개의 열린 파일에서 볼 수 있습니다.

시스템에 더 이상 새 파일을 여는 데 사용할 수 있는 리소스가 없었습니다.

이를 방지하려면 더 이상 필요하지 않은 파일을 닫는 것이 좋습니다.

파일 개체를 여는 것은 파일을 보기 위해 창을 여는 것과 같습니다.

더 정확하게 말하자면,

하나의 문자만 있는 창입니다.

넓으며 항상 파일의 맨 처음부터 시작합니다.

이것은 책이나 문서를 읽는 것과는 매우 다르며,

한 번에 여러 단어 또는 페이지를 볼 수 있는 곳입니다.

파일 대신 긴 문자 스트림으로 생각하십시오.

파일 개체는 한 번에 한 문자만 보고 순서를 볼 수 있습니다.

파일에서 읽는 것 외에도

파일에 쓸 수도 있습니다.

이 경우 파일의 내용이 변경됩니다.

이렇게 하려면 쓰기 모드에서 파일을 열어야 합니다.

쓰기 모드에서 파일을 열면 주의하십시오.

이전에 포함된 모든 항목이 삭제됩니다.

내용을 삭제하지 않고 기존 파일에 추가하려는 경우

쓰기 대신 추가를 사용해야 합니다.

에 대한 Python 설명서를 방문할 수 있습니다.

파일을 열 수 있는 다양한 모드에 대한 자세한 정보.

쓰기 모드에 있고 이 파일에 있는 내용을 삭제하고 싶지 않기 때문에

다른 것을 사용합시다.

파일이 존재하지 않는 경우,

파이썬이 당신을 위해 그것을 만들 것입니다.

이제 다음과 같이 파일에 쓸 수 있습니다.

우리가 끝나면 좋은 시민처럼 닫을 것입니다.

여기에서 Python이 “Hello World!”라는 텍스트가 포함된 다른 파일을 생성했음을 알 수 있습니다.

It could be easy to forget to close a file when you’re done using it.

So Python provides a special syntax that auto closes it.

This with keyword allows you to open a file,

do operations on it,

and automatically close it after the indented code is executed,

in this case, reading from the file.

Now, we don’t have to call f.close.

This code, as f assigns

the file object created by the open function to the variable name,

f. This line of code is basically this line of code,

except you can only access the file object,

f within this block.

This is another kind of scope.

Once you leave this indented block,

the file is closed and you are no longer able to interact with it.

For example, trying to call f.read outside this block like this would return an error.

However, just because you closed the file doesn’t mean you lose the data.

Here, we read in the file in this line and get

this file data string that has the text contained in the file.

Calling file data outside the block works fine.

We can use all the usual string methods on this file data string to process its contents.

파일 사용을 마치면 파일을 닫는 것을 잊어버리기 쉽습니다.

따라서 Python은 자동으로 닫는 특수 구문을 제공합니다.

키워드를 사용하면 파일을 열 수 있습니다.

그것에 대한 작업을 수행하고,

들여 쓰기 된 코드가 실행 된 후 자동으로 닫힙니다.

이 경우 파일에서 읽습니다.

이제 f.close를 호출할 필요가 없습니다.

이 코드는 f가 할당하는 대로

open 함수에 의해 생성된 파일 객체를 변수 이름으로,

NS. 이 코드 줄은 기본적으로 이 코드 줄입니다.

파일 개체에만 액세스할 수 있다는 점을 제외하고

f 이 블록 내에서.

이것은 또 다른 종류의 범위입니다.

이 들여쓰기 블록을 벗어나면

파일이 닫혀 더 이상 파일과 상호 작용할 수 없습니다.

예를 들어, 이와 같이 이 블록 외부에서 f.read를 호출하려고 하면 오류가 반환됩니다.

그러나 파일을 닫았다고 해서 데이터가 손실되는 것은 아닙니다.

여기에서 이 줄의 파일을 읽고 다음을 얻습니다.

파일에 포함된 텍스트가 있는 이 파일 데이터 문자열입니다.

블록 외부에서 파일 데이터를 호출하면 잘 작동합니다.

이 파일 데이터 문자열에 대한 모든 일반적인 문자열 메서드를 사용하여 내용을 처리할 수 있습니다.

Reading and Writing Files

To follow along with the example above, create a new file in Atom, copy the following text into it, and save it as some_file.txt!

Hello!!

You've read the contents of this file!

Here’s how we read and write files in Python.

Reading a File

f = open('my_path/my_file.txt', 'r')
file_data = f.read()
f.close()
  1. First open the file using the built-in function, open. This requires a string that shows the path to the file. The open function returns a file object, which is a Python object through which Python interacts with the file itself. Here, we assign this object to the variable f.
  2. There are optional parameters you can specify in the open function. One is the mode in which we open the file. Here, we use r or read only. This is actually the default value for the mode argument.
  3. Use the read method to access the contents from the file object. This read method takes the text contained in a file and puts it into a string. Here, we assign the string returned from this method into the variable file_data.
  4. When finished with the file, use the close method to free up any system resources taken up by the file.

Writing to a File

f = open('my_path/my_file.txt', 'w')
f.write("Hello there!")
f.close()
  1. Open the file in writing (‘w’) mode. If the file does not exist, Python will create it for you. If you open an existing file in writing mode, any content that it had contained previously will be deleted. If you’re interested in adding to an existing file, without deleting its content, you should use the append (‘a’) mode instead of write.
  2. Use the write method to add text to the file.
  3. Close the file when finished.

Too Many Open Files

Run the following script in Python to see what happens when you open too many files without closing them!

files = []
for i in range(10000):
    files.append(open('some_file.txt', 'r'))
    print(i)

With

Python provides a special syntax that auto-closes a file for you once you’re finished using it.

with open('my_path/my_file.txt', 'r') as f:
    file_data = f.read()

This with keyword allows you to open a file, do operations on it, and automatically close it after the indented code is executed, in this case, reading from the file. Now, we don’t have to call f.close()! You can only access the file object, f, within this indented block.

%d 블로거가 이것을 좋아합니다: