[英]How do I split multi-lines (comma-containing) string from txt file on python2
我對Pyhton真的很陌生,所以需要您的幫助
我有這樣的文字:
19 , 22.3 ,22.24 , 79 , 40.764767 ,29.932207
1 , 24.38 ,24.50 , 586 , 40.762291 ,29.919300
11 , 23.13 ,23.24 , 105 , 40.763786 ,29.929407
12 , 22.38 ,23.56 , 71 , 40.765610 ,29.941540
5 , 23.2 ,24.15 , 173 , 40.763805 ,29.929356
我試圖分裂:
array = file.read().split(",")
但是結果就像這樣
['19 ', ' 22.3 ', '22.24 ', ' 79 ', ' 40.764767 ', '29.932207 \n1 ',
' 24.38 ', '24.50 ', ' 586 ', ' 40.762291 ', '29.919300 \n11 ', ' 23.13 ',
'23.24 ', ' 105 ', ' 40.763786 ', '29.929407 \n12 ', ' 22.38 ', '23.56 ',
' 71 ', ' 40.765610 ', '29.941540 \n5 ', ' 23.2 ', '24.15 ', ' 173 ',
' 40.763805 ', '29.929356 \n']
但是我想使其不帶'\\ n',因為在拆分操作之后,我必須將string返回給int。 那我該怎么做呢?
import re
x="""19 , 22.3 ,22.24 , 79 , 40.764767 ,29.932207
1 , 24.38 ,24.50 , 586 , 40.762291 ,29.919300
11 , 23.13 ,23.24 , 105 , 40.763786 ,29.929407
12 , 22.38 ,23.56 , 71 , 40.765610 ,29.941540
5 , 23.2 ,24.15 , 173 , 40.763805 ,29.929356 """
print re.split(r" *, *|\n", x)
您可以使用re
一次性完成。
輸出: ['19', '22.3', '22.24', '79', '40.764767', '29.932207', '1', '24.38', '24.50', '586', '40.762291', '29.919300', '11', '23.13', '23.24', '105', '40.763786', '29.929407', '12', '22.38', '23.56', '71', '40.765610', '29.941540', '5', '23.2', '24.15', '173', '40.763805', '29.929356 ']
這個工作:
array = [file.read().replace('\n','').split(',')]
這應該工作:
array = [line.split(',') for line in file.read().splitlines()
您的文本文件每行有六個浮點數。
如果要使每行分開:
with open("path/to/file", "rt") as f:
data = [ [float(v.strip()) for v in l.strip().split(',')]
for l in f]
如果您只想包含所有數字的數組(即忽略文件的行結構)
with open("path/to/file", "rt") as f:
data = [ float(v.strip())
for l in f
for v in l.strip().split(',')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.