2014-04-08 50 views
0
2331,0,13:30:08,25.35,22.05,23.8,23.9,23.5,23.7,5455,350,23.65,132,23.6,268,23.55,235,23.5,625,23.45,459,23.7,83,23.75,360,23.8,291,23.85,186,23.9,331,0,1,25,1000,733580089,name,,, 

我有這樣的一條線,我怎麼能把它切斷?我只需要前9變量是這樣的:如何在Python中剪切一行?

2331,0,13:30:08,25.35,22.05,23.8,23.9,23.5,23.7,5455 

原始數據我保存爲txt.file,我可以改寫原來並保存?

回答

0

如果所有的值存儲在一個數組,你可以切片這樣的:

arrayB = arrayA[:9] 

爲了讓您的值到一個數組,你可以在每一個分裂的字符串「」

arrayA = inputString.split(str=",") 
+0

看着他格式化「前9個變量」的方式,這是行不通的。像這樣切分字符串將返回前9個字符,而不是用逗號分隔的前9個值。 – photoionized

+0

是的,你是對的!我的錯!我認爲是咖啡的時候了。 //編輯代碼 – Mailerdaimon

2

二者必選其一csv或只是直文件IO與字符串split功能

例如:

import csv 
with open('some.txt', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print row[:9] 

,或者如果一切都在同一行,你不希望使用CSV接口

with open('some.txt', 'r') as f: 
    line = f.read() 
    print line.split(str=",")[:9] 
0

如果你有一個名爲「content.txt」文件。

f = open("content.txt","r") 
contentFile = f.read(); 
output = contentFile.split(",")[:9] 
output = ",".join(output) 
f.close() 

f = open("content.txt","wb") 
f.write(output)