簡體   English   中英

從文本文件復制一定范圍的列並創建一個新文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM