我试图通过删除任何属性中出现的"
和'
来管理CSV文件。但是我不允许替换值,即使我已经在Python
控制台中进行了替换。你知道吗
我是这样做的:
import csv
input_data = open("D:/data/demo.csv", encoding="utf8")
reader = csv.DictReader(input_data)
csv_columns = reader.fieldnames
f = open("D:/data/output.csv", 'w', encoding="utf8", newline='')
for line in reader:
try:
new_line = None
for prop in line:
cured_str = str(line[prop]).replace("\"", "").replace('"', '').replace('"', "'").replace('"', "\'")
if new_line == None:
new_line = cured_str
else:
new_line += ", " + cured_str
f.write(new_line + "\n")
except Exception as err:
print("Error: ", err)
input_data.close()
f.close()
代码执行得很好,但是如果检查cured_str
的值,"
和'
永远不会被替换。例如,line[prop]
中的值是:
'I\\'m at Fazıl Bey\\'in @aaa in Rome, Italy '
完整的demo.csv
内容是:
id,message_id,date,text,tags,tweet_lang,source,place,geom,retweets,tweet_favorites,photo_url,quoted_status_id,user_id,user_name,user_location,followers,friends,user_favorites,status,user_lang,latitude,longitude,text_translated_en,src_lang,src_accuracy,text_translated_en_parallel,up_filter,prediction,probability_0,probability_1
10,569282882658807808,2015-02-21 23:49:50,fav,,,Twitter for Android,,0101000055B79C93C406DACC43C2B834440,,,,,1567775498,eliovmek,,,,,,,41.024757,28.787008,,zu,92.0,Social fav,,0,0.9732880735563579,0.026711926443642064
11,651384744010252288,2015-10-06 13:13:19,"Is I'm at she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"IsI'm at she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is I'm at she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
11,651384744010252288,2015-10-06 13:13:19,"Is she İlia? ",,,Foursquare,,0101000020E6100000B37CFA5B44063D4027A1D377277F4440,,,,,156044562,ajan34,,,,,,,40.99339197,29.02448058,,tr,98.0,"I'm at Fazıl Bey'in @aaa in Rome, Italy ",,0,0.9181253978980514,0.08187460210194858
PS:它可以在控制台中工作,但不能从脚本中工作。你知道吗
最后我用了:
出于某种奇怪的原因,其他的都奏效了
我不确定我是否完全理解,但您似乎使用了重复的替换,对
.replace()
的调用多于必要的调用。你知道吗以下是代码的简化版本:
使用此代码,从输入开始
demo.csv
我们得到以下
out.csv
:你打算这么做吗?你知道吗
相关问题 更多 >
编程相关推荐