2016-07-22 34 views
0

我一直在尋找,而不是現在發現了幾個小時,我正在尋找...更換電池一列中,而不是標頭中的CSV文件與Python

我期待制作一個程序,該程序將缺少一些信息的已編譯的.csv文件並詢問用戶他們想要添加的內容,然後將其放入csv中但不影響標題行。然後用添加文件保存文件。

它看起來像(輸入):

data 1, data 2, data 3 
2,,4 
4,,6 
6,,3 
3,,2 

程序會詢問「你會在數據如2列

回答:5

(輸出):

data 1, data 2, data 3 
2,5,4 
4,5,6 
6,5,3 
3,5,2 

所有幫助高度讚賞。

回答

1
  1. 我們用python上下文管理器打開輸入文件和輸出文件。
  2. 得到使用input()(蟒蛇3)或raw_input()(蟒蛇2)功能
  3. 搶第一排的文件中,它寫出來,而不改變任何東西,並通過其餘寫出來
  4. 循環用戶輸入文件拆分各列,並得到了用戶的輸入替換列2

    with open('in.csv', 'r') as infile, open('out.csv', 'w') as outfile: 
        middle_col = input('What would you like in data 2 column>: ') 
        outfile.write(infile.readline()) # write out the 1st line 
        for line in infile: 
         cols = line.strip().split(',') 
         cols[1] = middle_col 
         outfile.write(','.join(cols) + '\n')
+0

非常感謝!不完全確定最後一行是如何工作的 - 但確實如此,我已經從其他地方偷走了這些位。非常感謝你的幫助! :) –

+0

最後一行使用列表cols的每個元素,並使用逗號作爲分隔符將它們連接在一起成爲一個字符串。它還重新添加了一個在for循環的第一行中被剝離的換行符。 –

0

我相信你的問題的主要部分(如何跳過頭)已經在這裏找到答案:

Skip the headers when editing a csv file using Python

如果你對讀者致電next()一次,第一行(標題)將被跳過。然後你可以像平常一樣做for row in reader

+0

感謝您的反饋 - 你是完全正確的頭位是那種解決我在最好的只是有點難倒寫給th的方式列中下面的e個單元格,但它現在很好用。謝謝! –

相關問題