我有一个csv文件,数据为:
"field1"|"field2"|"field3"
"12ed"|"ksdk"|"sjdhs"
"1323"|"jdjsk
sjfsk"|"sk"k"sd"
我的预期输出
field1|field2|field3
12ed|ksdk|sjdhs
1323|jsjsk sjfsk|sk"k"sd
我的两个问题在第3行。其中数据在双引号csv文件中包含双引号,它应该在最终输出中返回。并且新行/行会中断列的值。全部见于第3行。
由于我将数据读作“QUOTE_NONE”,我能够返回[1:-1]数据,但无法用空值替换新行。
with open(fileIn, "rb") as input:
with open(fileOut,'wb') as output:
w = csv.writer(output, delimiter='|',quoting=csv.QUOTE_NONE,quotechar='')
for record in csv.reader(input, delimiter='|',quoting=csv.QUOTE_NONE):
#r = map(lambda x: x.replace("\n",""), record) --> This is not working
print([s[1:-1] for s in record])
w.writerow([s[1:-1] for s in record])
使用此代码,我能够处理引号(第一个和最后一个)并在数据中保留引号。但是我无法处理换行符。
更新 -
csv文件内容: -
"id"|"comments"|"Date"
"B-7"|"Hi How .
Are You."|"2017-03-15 13:53:23.727"
"8-C"|"How was "your day" today"|"2017-02-06 11:45:26.783"
错误: -
['"id"', '"comments"', '"Date"']
['"B-7"', '"Hi How . ']
[]
Traceback (most recent call last):
File "try.py", line 23, in <module>
appendRecords(record, oldRecord)
File "try.py", line 8, in appendRecords
oldRecord[-1] = oldRecord[-1] + ' ' + record[0]
IndexError: list index out of range
仅供参考 - 我正在使用2.6.6版本
答案 0 :(得分:0)
一个选项是添加一个检查,如果一行的最后一列没有以# switch to the iframe
iframe = driver.find_element_by_tag_name('iframe')
driver.switch_to.frame(iframe)
# close the tooltip
driver.find_element_by_css_selector('#welcome-tooltip-dialog > .close').click()
# switch back
driver.switch_to.default_content()
结尾,那么不要将它写入输出文件而是将下一行合并到它,然后将其写入输出文件。
合并是"
,但第一个列表的最后一个元素和最后一个列表的第一个元素也会被连接起来。
此代码适用于您:
list.extend