2014-04-08 23 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)