![](/img/trans.png)
[英]Copying specific columns from text file to a new text file with python
[英]Copying a range of columns from a text file and creating a new file
我是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:預期的字符緩沖區對象
任何幫助總比沒有幫助要好。
您會收到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')
我認為您的錯誤在於.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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.