Python 读取列中带有换行符的csv文件
我有一个列中有换行符('\n')的csv文件。 行由回车符+换行符分隔(\r\n) 分隔符是“;”并引用了所有 我想用空格替换列中的换行符('\n') 我已经尝试读取整个文件,并使用split('\r\n')获取行,但这不起作用Python 读取列中带有换行符的csv文件,python,python-3.x,csv,Python,Python 3.x,Csv,我有一个列中有换行符('\n')的csv文件。 行由回车符+换行符分隔(\r\n) 分隔符是“;”并引用了所有 我想用空格替换列中的换行符('\n') 我已经尝试读取整个文件,并使用split('\r\n')获取行,但这不起作用 with open(r’d:\my_file.csv’,’r’) as fi: data = fi.read() lines = data.split(‘\r\n’) for line in lines: with open(r
with open(r’d:\my_file.csv’,’r’) as fi:
data = fi.read()
lines = data.split(‘\r\n’)
for line in lines:
with open(r’d:\my_file.csv’,’a’) as fo:
fo.write(line.replace(‘\n’, ‘ ’)
import csv
with open(r’d:\my_file.csv’, ‘r’, newline=‘\r\n’) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=‘;’,quotechar='"')
for row in csv_reader:
n_row = row.replace(‘\n’, ‘ ‘)
…
是否可以逐行读取文件并使用“\r\n”作为新行指示符
非常感谢您的帮助 您的代码包含怪异的
“
和”
。。您还可以尝试对csv中的行使用.replace()
,该行由提供给您,读卡器:
。该行
是列的列表-您不能直接调用replace()
on。您需要替换此行每列内的换行符
--
你试着自己去读这个文件——引用它是很困难的。再次使用读取和存储csv要容易得多:
编写演示文件:
import csv
t = [["a", 2, "c\nd", 4], ["aa", "bb", "cc", "dd"], ["aaa", "bbb", "ccc", "ddd"]]
# using the default seperator of: ',' - use delimiter=';' to change it
with open( "d.txt", "w", newline="") as f:
w = csv.writer(f, quotechar='"', quoting=csv.QUOTE_ALL)
w.writerows(t)
# print files content
print(open("d.txt").read())
with open( "d_mod.txt", "w", newline="") as f:
w = csv.writer(f, quotechar='"', quoting=csv.QUOTE_ALL)
w.writerows(data) # modified data
# print new files content
print(open("d_mod.txt").read())
文件内容:
"a","2","c
d","4"
"aa","bb","cc","dd"
"aaa","bbb","ccc","ddd"
读取演示文件,处理数据并存储在列表中
data = []
with open("d.txt") as f:
r = csv.reader(f, quotechar='"')
for row in r:
data.append( [x.replace("\n"," ") for x in row] )
print(t)
print(data)
输出:
# original data
[['a', 2, 'c\nd', 4], ['aa', 'bb', 'cc', 'dd'], ['aaa', 'bbb', 'ccc', 'ddd']]
# parsed and replaced data (some numbers are now strings, \n is replaced)
[['a', '2', 'c d', '4'], ['aa', 'bb', 'cc', 'dd'], ['aaa', 'bbb', 'ccc', 'ddd']]
将修改后的数据写回新文件:
import csv
t = [["a", 2, "c\nd", 4], ["aa", "bb", "cc", "dd"], ["aaa", "bbb", "ccc", "ddd"]]
# using the default seperator of: ',' - use delimiter=';' to change it
with open( "d.txt", "w", newline="") as f:
w = csv.writer(f, quotechar='"', quoting=csv.QUOTE_ALL)
w.writerows(t)
# print files content
print(open("d.txt").read())
with open( "d_mod.txt", "w", newline="") as f:
w = csv.writer(f, quotechar='"', quoting=csv.QUOTE_ALL)
w.writerows(data) # modified data
# print new files content
print(open("d_mod.txt").read())
修改的文件内容:
"a","2","c d","4"
"aa","bb","cc","dd"
"aaa","bbb","ccc","ddd"
如果您添加不起作用的代码,会更容易提供帮助。@PatrickArtner:我已经尝试过了,但是由于行的原因,它会给我一个错误。