我有一个CSV文件,其中包含一些数据。我想用一些字符替换“”中的所有换行符。但是这些引号之外的新行应该保留。实现此目标的最佳方法是什么?
import sys, getopt
def main(argv):
inputfile = ''
outputfile = ''
print(argv[0:])
inputfile = argv[0:]
file_object = open(argv[0:], "r")
print(file_object)
data = file.read(file_object)
strings = data.split('"')[1::2]
for string in strings:
string.replace("\r", "")
string.replace("\n", "")
print(string)
f = open("output.csv", "w")
for string in strings:
string = string.replace("\r", "")
string = string.replace("\n", "")
f.write(string)
f.close()
if __name__ == "__main__":
main(sys.argv[1])
这不太奏效,因为“”和一样会丢失。
预期输入:
“dssdlkfjsdfj \r\n ashdiowuqhduwqh \r\n”,
"3"
预期输出:
"dssdlkfjsdfj ashdiowuqhduwqh",
"3"
答案 0 :(得分:1)
一个真实的示例会有所帮助,但要考虑到in.csv
:
"multi
line
data","more data"
"more multi
line data","other data"
以下内容将替换引号中的换行符:
import csv
with open('in.csv',newline='') as fin:
with open('out.csv','w',newline='') as fout:
r = csv.reader(fin)
w = csv.writer(fout)
for row in r:
row = [col.replace('\r\n','**') for col in row]
w.writerow(row)
out.csv:
multi**line**data,more data
more multi**line data,other data
答案 1 :(得分:0)
问题很容易解决。创建一个输出文件,并读取每个字符的输入文件。将每个字符写入输出文件,但是当出现“”时,使用〜运算符切换替换模式。在替换模式下,将所有\ r \ n替换为“(什么都没有)。