尝试使用 VS 代码打开 Python3 的 CSV 文件时出现意外结果

Unexpected result when trying to open CSV file with Python3 using VS Code

我正在尝试使用 Python(Python 3.9.0,在 VS Code,MacOS 中)打开一个 csv 文件,使用 with open。我的基本代码如下:

import csv
import os

file_to_load = os.path.join("resources","original_file.csv")
with open(file_to_load) as starting_numbers:
    print(starting_numbers)

我得到的结果是:

<_io.TextIOWrapper name='resources/original_file.csv' mode='r' encoding='UTF-8'>

我预期的结果是:

<open file 'Resources/original_file.csv', mode 'r' at 0x[memory address]>

我是四年前遇到的 this question,但它似乎与我的问题没有直接关系。我目前没有尝试获取文件的完整读数,只是内存分配。

<open file ...> 是打开文件的 python 2 字符串表示形式。在 python 3 中,文件管理被分解为多个层以实现不同的功能。文本包装器会将文件的字节解码为 python 3 的字符串,这些字符串完全启用了 unicode,而二进制文件只需要 reader。参见 open and Text I/O

>>> open('test.py')
<_io.TextIOWrapper name='a.py' mode='r' encoding='UTF-8'>
>>> open('test.py', 'rb')
<_io.BufferedReader name='a.py'>

以文本模式打开文件时,TextIOWrapper 在二进制 BufferedReader

上分层
>>> f = open('test.py')
>>> f.buffer
<_io.BufferedReader name='test.py'>

为 python 2 编写的旧示例不一定提到它们是 python 2,您可能需要“阅读茶叶”才能弄明白。看起来像 <open file ...> 的文件对象是一个死赠品。