2016-01-28 55 views
2

我在测试代码时遇到了一些麻烦。此代码是为了:列表之间不需要的空行

  • 读取csv文件
  • 采取两个输入
  • 把输入列表中的
  • 使一个新的列表与CSV内容+输入列表
  • 用新列表覆盖csv。

    import csv 
    
    input1 = input("input 1") 
    input2 = input("input 2") 
    
    original = [] 
    with open('test.csv', 'r') as f: 
        reader = csv.reader(f) 
        original = list(reader) 
    
    data = [input1,input2] 
    original.append(data) 
    
    with open('test.csv', 'w') as f: 
        writer = csv.writer(f) 
        writer.writerows(original) 
    

例如,如果“猫”和“狗”是在该文件中,我在“斑马”和“长颈鹿”类型的,我期望的CSV到这个样子,当我在记事本中打开它: link

但是,当我多次运行代码时,在列表之间会产生空白行,我不知道为什么。 link

我是新来的Python和任何帮助表示赞赏。

+0

你可以尝试rstrip你的输入吗?例如,data = [input1.rstrip(),input2.rstrip()] – user1157751

+0

@ user1157751没有任何变化 –

回答

1

解决的办法是:

open('test.csv', 'w', newline='') 

在Python csv.Writer的新版本现在可以处理换行符,但open也做。然后,您必须告诉open写入文件时不得添加换行符。有关更多解释,请参阅API documentation

+0

谢谢,我认为这将是这样简单的事情。 –

+0

@Gabriel Owens,不客气,如果是解决方案,您可以接受 – jlandercy

+0

您使用的是什么版本的Python?当我尝试这样做时,我得到了'TypeError:'newline'是这个函数的无效关键字参数。 – train1855

相关问题