将CSV列中的占位符替换为outputfile中的换行符(使用python)

2024-06-16 09:25:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我必须将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第三方:@Desde:1539@Hasta: 9999@Desde_fuzzy: exact@Hasta_fuzzy:end@--,1000135,Patzcuaro,1539,exact,9999,end,Ciudad,Ciudad,gerhardNE,None,No,-2

2,---数据条目分类-----@ID:1000136categoria:Pueblo@subcategoria:普韦布洛德indios@es第三方:@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

类别:城市

次类别:城市

第三方:

Desde:1539

哈斯塔:9999

Desde_fuzzy:精确

Hasta_fuzzy:结束



Tags: 文件csv数据代码counter条目itemreader
1条回答
网友
1楼 · 发布于 2024-06-16 09:25:36

事实上,正如@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()

相关问题 更多 >