我想從文件中刪除第一列。該文件包含3個以空格分隔的列,列中包含以下標題: X','位移'和'強制'(請參閱圖像)。Python-如何從文件中刪除列
我已經想出了下面的代碼,但令我失望的它不工作!
f = open("datafile.txt", 'w')
for line in f:
line = line.split()
del x[0]
f.close()
任何幫助非常感謝! 惠山
我想從文件中刪除第一列。該文件包含3個以空格分隔的列,列中包含以下標題: X','位移'和'強制'(請參閱圖像)。Python-如何從文件中刪除列
我已經想出了下面的代碼,但令我失望的它不工作!
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()
謝謝大家的支持。 – Esan 2012-04-15 01:16:56
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')
編輯:固定與空行
工作
'德爾X [0]'真的嗎? – orlp 2012-04-15 00:45:40
您是否真的閱讀過代碼丟失的錯誤?我的意思是,你在閱讀時使用'''w''',很多都沒有意義... – 2012-04-15 00:47:22