2014-11-04 67 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() 
相关问题