2014-11-04 127 views
0

我是Python的新手,我正在爲一些聲納文件進行一些數據解析,這些文件比我需要處理數據的信息更多。我找到了這個代碼,我試圖操縱它來實現我的目標。我只需要前53列信息,最後100列是不需要的無關數據。從文本文件複製一系列的列並創建一個新文件

f = open("ADV125cm.txt", "r") 
g = open("ADV125cm_fixed.txt", "w") 

for line in f: 
    if line.strip(): 
     g.write("\t".join(line.split(0,53)[1:]) + "\n") 
f.close() 
g.close() 

我得到這個錯誤代碼,我不知道這意味着什麼:

TypeError: expected a character buffer object

任何幫助都勝於沒有幫助。

回答

1

你得到TypeError: expected a character buffer object因爲string.split預計字符的字符串被剝離。你通過0, 53。可能你會對切片操作感到困惑。如果您想獲得第一個53 的一條線,您需要line[:53]。運用這一更改for循環代碼變爲:

for line in f: 
    if line.strip(): 
     g.write("\t".join(line[:53]) + "\n") 

但是,如果你想要的是第53個列與開頭和結尾的空白字符每行剝離的,代碼可重構這樣的:

for line in f: 
    g.write(line.strip()[:53] + '\n') 
0

我認爲你的錯誤在於如何使用.split()。我沒有這些文件,所以我不能確定,但​​這不是一個正確的用法。做到這一點的方法是:

f = open("ADV125cm.txt", "r") 
g = open("ADV125cm_fixed.txt", "w") 

for line in f: 
    if line.strip(): 
     g.write(line[:52]+ "\n") 
f.close() 
g.close() 
相關問題