为什么'rblabla'是有效的csv文件模式?

时间:2014-02-28 10:55:27

标签: python csv

我有一个csv文件和一个读取它的函数。

我可以通过多种方式打开它,大多数这些模式都会产生类似的结果。

def read(mode):
    with open("file.csv", mode) as inf:
        reader = csv.reader(inf)
        for row in reader:
            print row

read('r')       #prints \r\n characters
read('rb')      #prints \r\n characters
read('rU')      #prints \n characters but not \r characters
read('rblabla') #WAT.

我想知道为什么允许最后一个例子。它产生与正常读取模式相同的结果。

它有什么理由以这种方式运作吗?

1 个答案:

答案 0 :(得分:6)

mode不适用于csv阅读器,而适用于python默认文件处理程序。在剥离U之后,Python仅强制执行以'r','w'或'a'开头的模式。这是记录here,适用于python 2.5及更高版本。

模式是文件处理程序的一个属性,可能被其他应用程序使用,因此它可能包含更多字符。