合并CSV函数添加随机新行

14ifxucb  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(85)

我有以下功能:

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之间有一个空行。

bxfogqkk

bxfogqkk1#

问题出在这一行:

csv_merge += '\n' + line

你在每一行之前添加了一个换行符,这就是为什么在John和Adam行之间出现了两行。所以,去掉那行代码中的'\n':

csv_merge += line

相反,您需要在标题行后添加一个'\n'。因此,将这一行从:

csv_merge = csv_header

收件人:

csv_merge = csv_header + '\n'
wgx48brx

wgx48brx2#

通过简单地将csv_merge += '\n' + line更改为csv_merge += '\n' + line.strip('\n')解决了这个问题。

相关问题