Python 读取csv文件和文本文件之间的区别?

Python 读取csv文件和文本文件之间的区别?,python,Python,这有什么意义 with open('grades.csv', 'r') as csvfile 在这个代码中 import csv with open('grades.csv', 'r') as csvfile: grades_reader = csv.reader(csvfile, delimiter=',') row_num = 1 for row in grades_reader: print('Row #{}:'.format(row_num)

这有什么意义

with open('grades.csv', 'r') as csvfile
在这个代码中

import csv

with open('grades.csv', 'r') as csvfile:
    grades_reader = csv.reader(csvfile, delimiter=',')

    row_num = 1
    for row in grades_reader:
        print('Row #{}:'.format(row_num), row)
        row_num += 1
???因为当我再次将代码重写为:

import csv
grades_reader=open('grades.csv', 'r')
row_num = 1
for row in grades_reader:
    print('Row #{}:'.format(row_num), row)
    row_num += 1

我得到了相同的结果,但输出不是列表。因此,可以安全地假设with命令在读取时会将其转换为列表吗?

这不是关于将open('grades.csv',r')作为csvfile:行的

第一种情况是关于
grades\u reader=csv.reader(csvfile,delimiter=',')

在第一种情况下,您使用的是
csv.reader
,因此它会返回一个列表。
在第二种情况下,您只是将文件作为文本读取

您可以将第二种情况更改为,以获得与第一种情况相同的结果

import csv
grades_reader=open('grades.csv', 'r')
grades_reader = csv.reader(grades_reader, delimiter=',')
row_num = 1
for row in grades_reader:
    print('Row #{}:'.format(row_num), row)
    row_num += 1
这里有一些关于python的
语句的讨论

您应该更喜欢使用with(),因为这将关闭文件并防止资源泄漏,但正如所回答的,这不是根本原因