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

emh*_*emh 3 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.
Run Code Online (Sandbox Code Playgroud)

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

这有什么原因吗?

Bac*_*ach 6

这mode不是针对csv阅读器,而是针对python默认文件处理程序.在剥离之后,Python仅强制执行模式以'r','w'或'a'开头U.这是记录在这里,并且对于Python 2.5和更高版本.

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