我必须将csv文件一列中包含的代码写入新文件(每一行中)。 当然,这些代码实际上应该包含换行符,因此我插入了一个占位符(@),在输出新文件时我想将其转换为换行符。我试图在代码中的各个位置进行替换,但是没有任何效果。我什至没有用\ r \ n字符串替换@。在我的上一个版本(如下)中,python只是很高兴地继续输出@:
import csv
import codecs
tablelist=('gz_categoria', 'gz_cabildo')
counter=0
for item in tablelist:
with open('C:/Hgis/'+"%s" % (item)+'.csv', 'r') as csvFile:
reader = csv.reader(csvFile)
for row in reader:
row[1].replace('\r\n', '\\r\n')
row[1].replace('@', '\\r\n')
newpage = codecs.open ('C:/Hgis/db/'+"%s" % (item)+''+str(counter)+'.txt',encoding='utf-8', mode='w+')
newpage.write(row[1].decode('UTF-8'))
counter = counter+1
newpage.close()
这是csv的前两行:
1,----数据输入类别---- @ ID:1000135categoria:Ciudad @ subcategoria:Ciudad @ es parte de:@Desde:1539 @ Hasta:9999 @ Desde_fuzzy:确切@Hasta_fuzzy:end @ --- -,1000135,Patzcuaro,1539,exact,9999,end,Ciudad,Ciudad,gerhardNE,None,No,-2
2,----数据输入类别-@ ID:1000136类别:Pueblo @ subcategoria:Pueblo de indios @ es parte de:@Desde:1111 @ Hasta:9999 @ Desde_fuzzy:start @ Hasta_fuzzy:end @- ---,1000136,Puruandiro,1111,start,9999,end,Pueblo,Pueblo de indios,tanck,None,No,0
文件1中所需的输出:
----数据输入类别----
ID:1000135
类别:Ciudad
子类别:Ciudad
双方当事人:
目的:1539
哈斯塔:9999
Desde_fuzzy:准确
Hasta_fuzzy:结束
答案 0 :(得分:0)
实际上,正如@snakecharmerb所评论的那样,该错误并未为结果分配变量:
以下代码可产生所需的结果:
tablelist=('gz_categoria', 'gz_cabildo')
counter=0
for item in tablelist:
with open('C:/Hgis/'+"%s" % (item)+'.csv', 'r') as csvFile:
reader = csv.reader(csvFile)
for row in reader:
row[1].replace('@', '\r\n')
newpage = codecs.open ('C:/Hgis/db/'+"%s" % (item)+''+str(counter)+'.txt',encoding='utf-8', mode='w+')
newpage.write(row[1].decode('UTF-8'))
counter = counter+1
newpage.close()