Django python escape \ n字符

时间:2012-07-24 11:09:16

标签: python django django-forms django-views

在下面的函数中,我从模板上传文件并将其传递给以下函数。但是如果有\ n或\ t(This is a tab separated file),数据就会瘫痪。

1.如果有一个\ n或一些特殊字符,它会将数据存储在下一行。如何避免这种情况。

2.data不是None或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")

1 个答案:

答案 0 :(得分:2)

  1. 使用stdlib的csv模块来解析文本,它会更好。

  2. 您的表达式data is not None or data != ""始终为真,您的意思是data is not None and data != ""。请注意,您可以将其简化为elif counter == 3 and data: