0
在以下函数中,我从模板上传文件并将其传递给以下函数。但是如果存在\ n或\ t(This is a tab separated file
),则数据会受到损坏。Django python转义字符
1.如果有\ n或某些特殊字符,它会将数据存储在下一行。如何避免这种情况。
2.data不无或数据!=“”仍然保存空值
def save_csv(csv_file,cnt):
ret = 1
arr = []
try:
flag = 0
f = open(csv_file)
for l in f:
if flag == 0:
flag += 1
continue
parts = l.split("\t")
counter = 1
if(len(parts) > 6):
ret = 2
else:
taggeddata = Taggeddata()
for data in parts:
data = str(data.strip())
if counter == 1 and (data is not None or data != ""):
taggeddata.field1 = data
elif counter == 2 and (data is not None or data != ""):
taggeddata.field2 = data
elif counter == 3 and (data is not None or data != ""):
taggeddata.field3 = data
elif counter == 4 and (data is not None or data != ""):
taggeddata.field4 = data
elif counter == 5 and (data is not None or data != ""):
taggeddata.field5 = data
elif counter == 6 and (data is not None or data != ""):
taggeddata.field6 = data
counter += 1
taggeddata.content_id = cnt.id
taggeddata.save()
arr.append(taggeddata)
return ret
except:
write_exception("Error while processing data and storing")
不推倒重来,使用[CSV模块(http://docs.python.org/library/csv.html)来处理CSV文件,该模块能够处理正确的转义和其他问题。 – 2012-07-24 11:19:30