簡體   English   中英

Python-如何從文件中刪除列

[英]Python- How to Remove Columns from a File

我想從文件中刪除第一列。 該文件包含3列,各列之間用空格隔開,並且這些列具有以下標題:X','Displacement'和'Force'(請參見圖片)。

資料檔案

我提出了以下代碼,但令我失望的是,它不起作用!

f = open("datafile.txt", 'w')
 for line in f:
  line = line.split()
  del x[0]
f.close()

任何幫助深表感謝 ! 易山

首先,您正在嘗試從文件中讀取(通過遍歷文件內容)以進行寫入。 這將給您一個IOError

其次,不存在名為x變量(您尚未在腳本中聲明/設置一個)。 這將生成一個NameError

第三,也是最后,一旦(正確)讀取和編輯文件中的列,您將需要將數據寫回到文件中。

為了避免將一個(可能很大的)文件一次全部加載到內存中,從一個文件(逐行)讀取並同時寫入一個新文件可能是一個好主意。

這樣的事情可能會起作用:

f = open("datafile.txt", "r")
g = open("datafile_fixed.txt", "w")

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

f.close()
g.close()
print ''.join([' '.join(l.split()[1:]) for l in file('datafile.txt')])

或者,如果您想保留空格並且知道第二列始終以第10個字符開頭:

print ''.join([l[11:] for l in file('datafile.txt')])

讀一些有關python i / o的信息可能會有所幫助,但是類似以下內容的內容應該可以幫助您:

with open("datafile.txt", "r") as fin:
    with open("outputfile.txt", "w") as fout:
        for line in fin:
            line = line.split(' ')
            if len(line) == 3:
                del line[0]
                fout.write(line[0] + ' ' + line[1])
            else:
                fout.write('\n')

編輯:固定為使用空白行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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