2017-02-23 69 views
0

我有一個.csv文件,我正在創建,它是通過迭代輸入文件來創建的。我的當前的特定列這個問題是關於代碼看起來是這樣的:追加csv行,同時從文件中添加字符

input_filename = sys.argv[1] 
output_filename = sys.argv[2] 
f = open(sys.argv[3]).read() 

list.append(("A B", f[0:2], "numeric", "A B")) 

對於代碼的部分「F [0:2]」,而不是它的F中的前幾個字符追加作爲整個文件(這顯然使得它在每次追加時追加前幾個字符),我希望它在每次循環執行時爲f中的下一行追加[0:2]。我曾嘗試過:

list.append(("A B", f.line[0:2], "numeric", "A B")) 

和其他類似的方法,無濟於事。我希望這個問題很清楚 - 如果不是的話,我很樂意澄清。有關將此規定納入此追加行的任何建議,敬請欣賞!

謝謝!

回答

0

對於我來說,猜測你想要在這裏做什麼有點困難,但這就像你要找的東西?

的data.txt中

abc 
def 

的代碼內容:

# I'm simply replacing your names so I can test this more easily 
input_filename = 'input.txt' 
output_filename = 'output.txt' 
data_filename = 'data.txt' 
transformed_data = [] 
with open(data_filename) as df: 
    for line in df: 
     # remove surrounding whitespace- assuming you want this 
     line = line.strip() 
     if line: # make sure there's non-whitespace characters left 
      transformed_data.append(("A B", line[0:2], "numeric", "A B")) 

print(transformed_data) 
# produces 
# [('A B', 'ab', 'numeric', 'A B'), ('A B', 'de', 'numeric', 'A B')] 

如果你使用的.csv文件時,我強烈建議Python自帶的csv庫。讓它爲你處理編碼和格式。

+0

謝謝!我能夠解決這個問題,並將研究csv庫。謝謝你的幫助! – BigBlue

+0

@BigBlue太棒了!如果我的回答對你有幫助,請接受它,這樣我就可以收穫可能無用的但是如此令人滿意的觀點。如果你不熟悉Python,我推薦[標準庫上的這個頁面](https://docs.python.org/3/library/)。我節省了很多時間知道內部的內容,並且我已經從單個模塊(通常鏈接在每個頁面的頂部)讀取了源代碼。 – Ben

+0

感謝您的建議!你的回答已被正式接受! – BigBlue