2016-04-02 26 views
-1

這看起來像一個簡單的問題,但我找不到答案。用於複製列的Python腳本

輸入:

a 3 4 
b 1 4 
c 8 3 
d 3 8 

通緝輸出:

a a 3 4 
b b 1 4 
c c 8 3 
d d 3 8 

注:.txt文件輸入文件在第一列多行。

+0

請澄清輸入 - 你是在讀的.csv列,他們是陣列項目或爲每行字符串,你只是想複製頭兩個字符到開頭?你只是想顯示輸出,或操作它和/或寫回到一個文件? – SteJ

回答

2

你沒有要求它,但你想awk?你可以這樣做:

awk '{$1=$1 OFS $1}1' Input 

或更明顯,但彈性較差:

awk '{print $1 $1 $2 $3}' Input 
+0

我即將發佈完全相同的答案! – Anzel

+2

作爲一個python問題? – SteJ

+0

偉大的思想家認爲 – Brian

0

假設您已經閱讀您的結果在一個數組,你想:

values = ["a",1,2,3] 
values.insert(0,values[0]) 

這就將在位置0處的索引0(在這種情況下爲「a」)的值,將所有其他內容的值向右移動。

這也將在字符串的工作,因此,如果您的結果解讀爲一個字符串,你可以做以下的 - 請注意,我包括每個數字後的空格和我做不同的有點:

values="a 1 2 3" 
values = values[:2] + values 

在這個例子中,我們取前兩個數組成員(values[:2]values[0:2]),並將現有的數組值添加到最後。

希望這會有所幫助!

0
with open("sample.csv") as inputs: 
    for line in inputs: 
     trimed_line = line.strip() 
     parts = trimed_line.split() 
     print("{0} {1}".format(parts[0], trimed_line)) 


output: 
a a 3 4 
b b 1 4 
c c 8 3 
d d 3 8 
0

試試這個:

fin = open("text.txt") 
content = fin.readlines() 
fin.close() 
for elem in content: 
    print(elem[0],elem[0]+elem[1:-1]) 

輸出:

a a 3 4 
b b 1 4 
c c 8 3 
d d 3 8