我有以下功能:
def combine_csvs(csv_header, ends_with, directory):
csv_list = []
for item in os.listdir(directory):
if os.path.isfile(os.path.join(directory, item)):
if item.endswith(ends_with):
csv_list.append(item)
csv_merge = csv_header
for file in csv_list:
csv_in = open(file)
for line in csv_in:
if line.startswith(csv_header):
continue
csv_merge += '\n' + line
csv_in.close()
return csv_merge
和2个CSV文件:
- 1_final.csv:
name,lowest,highest
John,14,53
Adam,13,60
- 2_final.csv:
name,lowest,highest
Mary,9,34
由于某种原因,当我在与所有CSV文件相同的目录中运行print(combine_csvs("name,lowest,highest", "_final.csv", "."))
时,John和Adam之间有一个空行。
2条答案
按热度按时间bxfogqkk1#
问题出在这一行:
你在每一行之前添加了一个换行符,这就是为什么在John和Adam行之间出现了两行。所以,去掉那行代码中的'\n':
相反,您需要在标题行后添加一个'\n'。因此,将这一行从:
收件人:
wgx48brx2#
通过简单地将
csv_merge += '\n' + line
更改为csv_merge += '\n' + line.strip('\n')
解决了这个问题。