如何在Python中使用 "with "来打开文件

95 阅读2分钟

你可以使用下面的语法在 Python 中打开一个文件,对它做一些事情,然后关闭该文件。

file = open('my_data.csv')

df = file.read()

print(df)

file.close()

这种方法的问题是,很容易忘记关闭文件。

一个更好的方法是使用与打开,它使用下面的基本语法:

with open('my_data.csv') as file:

   df = file.read()

   print(df)

使用这种方法,你正在处理的文件会自动关闭,这样你就不必记得使用file.close()

下面的例子展示了如何在不同情况下使用with open

例子 1: 使用 With 语句来读取文件

下面的代码展示了如何使用 "with "语句将一个文件读入 Python 并打印文件的内容:

with open('my_data.csv') as file:

   df = file.read()

   print(df)

,points,assists,rebounds
0,11,5,6
1,17,7,8
2,16,7,8
3,18,9,10
4,22,12,14
5,25,9,12
6,26,9,12
7,24,4,10
8,29,8,11

文件的内容被打印出来,文件被自动关闭,不需要我们输入file.close()

例 2: 使用 With 语句来写文件

下面的代码显示了如何使用 "with "语句将一些文本写到一个文件中:

with open('data_out.csv', 'w') as file:

    file.write('Some text to write to CSV file')

注意open()语句中的'w'告诉Python对该文件使用'写'模式,而不是读模式。

例 3: 使用 With 语句来读写文件

我们也可以在一个 "with "语句中一次打开几个文件。

下面的代码显示了如何使用 "with "语句来打开两个文件,读取一个文件的内容,然后将第一个文件的内容写到第二个文件中。

with open('my_data.csv', 'r') as infile, open('data_out.csv', 'w') as outfile:
    for line in infile:
        outfile.write(line)

如果我们导航到我们写入'data_out.csv'的位置,那么我们可以查看该文件的内容。

请注意,我们可以使用 open()函数,在一个 "with "语句中打开任意多的文件。

其他资源

下面的教程解释了如何在Python中执行其他常见的操作:

如何用Pandas读取CSV文件
如何用Pandas读取Excel文件
如何用Pandas读取文本文件