1
我是新的python,我需要一些幫助。我製作了一個python腳本,它從文件中取出兩列並將它們複製到一個「新文件」中。但是,我現在需要將列添加到「新文件」。我需要在側面添加列,而不是底部。我的腳本將它們添加到底部。有人建議使用CSV,我讀過它,但我無法以它將新列添加到前一列的方式。任何幫助,高度讚賞。Python的CSV模塊,添加列到一邊,而不是底部
這裏是我寫的代碼:
import sys
import re
filetoread = sys.argv[1]
filetowrite = sys.argv[2]
newfile = str(filetowrite) + ".txt"
openold = open(filetoread,"r")
opennew = open(newfile,"a")
rline = openold.readlines()
number = int(len(rline))
start = 0
for i in range (len(rline)) :
if "2theta" in rline[i] :
start = i
for line in rline[start + 1 : number] :
words = line.split()
word1 = words[1]
word2 = words[2]
opennew.write (word1 + " " + word2 + "\n")
openold.close()
opennew.close()
這裏是第二個代碼我寫的,使用CSV:
import sys
import re
import csv
filetoread = sys.argv[1]
filetowrite = sys.argv[2]
newfile = str(filetowrite) + ".txt"
openold = open(filetoread,"r")
rline = openold.readlines()
number = int(len(rline))
start = 0
for i in range (len(rline)) :
if "2theta" in rline[i] :
start = i
words1 = []
words2 = []
for line in rline[start + 1 : number] :
words = line.split()
word1 = words[1]
word2 = words[2]
words1.append([word1])
words2.append([word2])
with open(newfile, 'wb') as file:
writer = csv.writer(file, delimiter= "\n")
writer.writerow(words1)
writer.writerow(words2)
這些輸入文件的一些樣品:
我的第一個腳本「幾乎」很棒,除了它將新列寫入底部,我需要它們在前一列的旁邊。
我改變了你建議的話,但仍然不起作用。我只需要添加一對新的列,將其添加到已經在(輸出)文件中的列的一側。我被這個嚴重迷失了。 – Justme
@henrymartinez,因爲你的原始代碼似乎沒有試圖添加任何列,我不知道你的誤解在哪裏。 –
感謝馬克的回覆。我是新的python,很可能我做的不正確。我的第一個代碼從包含許多列的文件(參見頂部輸入文件的示例)獲取到列中,然後將它們複製到「新文件」中。我只是希望當我在同一個「新文件」中複製一組新的列時,這些列將被添加到前一列的旁邊,而不是在底部。任何建議我應該如何寫我的代碼是高度讚賞。最好的祝福。 – Justme