繁体   English   中英

从python中的数据文件中仅获取字符串,整数和/或浮点数的最佳方法?

Best way to get just strings, integers, and/or floats from a data file in python?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

例如:

我的输入:

Input:
zxxxxyzzxyxyxyzxzzxzzzyzzxxxzxxyyyzxyxzyxyxyzyyyyzzyyyyzzxzxzyzzzzyxzxxxyxxxxyyzyyzyyyxzzzzyzxyzzyyy
--------
x y z
--------
A B
--------
    A   B
A   0.634   0.366   
B   0.387   0.613   
--------
    x   y   z
A   0.532   0.226   0.241   
B   0.457   0.192   0.351


Output:
AAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBAAA

现在我正在使用这个:

import sys, re

data = []
for line in sys.stdin.readlines():
    data.append(''.join(line.strip().split()))

cleanup = []
for i in range(len(data)):
    cleanup.append(re.sub(r"\S+", " ", data[i]))

print(data)

和我的输出看起来像这样:

['zxxxxyzzxyxyxyzxzzxzzzyzzxxxzxxyyyzxyxzyxyxyzyyyyzzyyyyzzxzxzyzzzzyxzxxxyxxxxyyzyyzyyyxzzzzyzxyzzyyy', '--------', 'xyz', '--------', 'AB', '--------', 'AB', 'A0.6340.366', 'B0.3870.613', '--------', 'xyz', 'A0.5320.2260.241', 'B0.4570.1920.351']

但是我希望我的数据列表看起来像是:

print(data)
['zxxxxyzzxyxyxyzxzzxzzzyzzxxxzxxyyyzxyxzyxyxyzyyyyzzyyyyzzxzxzyzzzzyxzxxxyxxxxyyzyyzyyyxzzzzyzxyzzyyy', 'x', 'y', 'z', 'A', 'B', '0.634', '0.366', '0.387', '0.613', '0.532', '0.226', '0.241', '0.457', '0.192', '0.351']
2 个回复

你几乎是对的。 您只需要不重新加入split()结果。 而是将data列表与split()每个元素附加在一起

import sys, re

data = []
for line in sys.stdin.readlines():
    for x in re.sub(r"[^a-zA-Z\d\s\.]", "", line).strip().split():
        data.append(x)

print(data)

你可以这样

rawLines = raw.split("\n")

data = {}
data["seq"] = rawLines[1]

data["mat1"] = {}
for k in [8,9]:
    temp = rawLines[k].split("\t")
    if(k==8):
        data["mat1"]["A"] = {"A":float(temp[1]),"B":float(temp[2])}
    else:
        data["mat1"]["B"] = {"A":float(temp[1]),"B":float(temp[2])}

data["mat2"] = {}
for k in [14,15]:
    temp = rawLines[k].split("\t")
    if(k == 14):
        data["mat2"]["A"]={"X":float(temp[1]),"Y":float(temp[2]),"Z":float(temp[3])}
    elif(k == 15):
        data["mat2"]["B"]={"X":float(temp[1]),"Y":float(temp[2]),"Z":float(temp[3])}
1 在Python中使用字符串和浮点数从大型文本文件中读取数据

我无法从文本文件中读取大量数据,并且无法从中拆分和删除某些对象以获得更完善的列表。 例如,假设我有一个文本文件,我们将其称为“ data.txt”,其中包含此数据。 我的问题是从此文件中获取所需的数据。 假设我只对“对象编号”和“对象质量”感兴趣,它们在文件中重复但具有不同的数值。 ...

2 在 Python 中将字典中的输出值从字符串更改为浮点数和/或整数

到目前为止,我有这个代码: 我得到以下输出: 输出继续,但这只是其中的一部分。 我需要将 () 中的第一个数字设为浮点数,将第二个设为整数。 例如,对于列出的第一个输出,我需要将“3.75”设为浮点数 3.75,将“440”设为整数 440。 另外我如何使 '\\n' 不显示在输出中? 我 ...

2020-04-10 15:25:24 1 37   python
3 将字符串列表转换为数据文件中的浮点数

我的代码产生了这个结果 但我想删除'' 我试图将列表转换为浮点数,但它不断返回错误。 我需要一种将这种格式的当前列表转换为浮点数的方法。 这对我没有用,因为在尝试使用float(my_list)时似乎出错了 ...

2013-10-23 15:32:27 4 627   python
6 在python中格式化字符串内的整数和浮点数

我正在试图找出如何打印格式化字符串四舍五入到重要数字。 说我有: 我想将它四舍五入到四个sig figs,作为整数。 我试过了: 我得到: 为什么不显示: 我认为这就是字符串格式化的方式。 ...

7 Python xlrd将整数和字符串转换为浮点数

我成功地尝试将excel文件转换为csv,但它将我的所有数字(尽管它们是excel文件中的整数或文本)转换为浮点数。 我知道python默认将数字读作浮点数。 有没有机会把我的所有数字都变成字符串? 我的代码是吼叫 感谢您的时间 ...

8 从xml获取整数和浮点数

我正在使用tinyxml2,我知道如何获取属性字符串,但是我也想获取整数,浮点数和布尔值。 所以,我有这段代码: 和sample.xml是: 不用担心,该xml文件只是一个伪样本,什么都不是! 无论如何,我仍然无法获得属性“年龄”内的整数值。 如果这不起作用,那么我应该 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM