我有一个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.
我想知道为什么允许最后一个例子。它产生与正常读取模式相同的结果。
它有什么理由以这种方式运作吗?
答案 0 :(得分:6)
mode
不适用于csv阅读器,而适用于python默认文件处理程序。在剥离U
之后,Python仅强制执行以'r','w'或'a'开头的模式。这是记录here,适用于python 2.5及更高版本。
模式是文件处理程序的一个属性,可能被其他应用程序使用,因此它可能包含更多字符。