尝试使用 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 ...>
的文件对象是一个死赠品。
我正在尝试使用 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 ...>
的文件对象是一个死赠品。