我有一个文本文件,其中包含我试图用Python读取的数据:
OMEGA2 1.450E+00 1.500E+00 1.550E+00 1.600E+00 1.650E+00 1.700E+00
OMEGA2 1.800E+00 1.850E+00 1.900E+00 1.950E+00 2.000E+00 2.050E+00
F2REAL 1.146E+00 -1.015E+03-2.206E+03-2.618E+03-2.288E+03-1.400E+03
F2REAL 6.255E+00 -3.254E+02-8.150E+02-1.060E+03-9.749E+02-5.995E+02
F2REAL 1.754E+01 -1.530E+02-4.375E+02-5.932E+02-5.618E+02-3.536E+02
F2REAL 1.740E+01 -7.981E+01-2.525E+02-3.748E+02-3.891E+02-2.739E+02
OMEGA2 1.800E+00 1.850E+00 1.900E+00 1.950E+00 2.000E+00 2.050E+00
现在,我只想得到以F2REAL开头的值;每行,我要提取6个值。值1从索引11到索引20,值到从索引21到30。。。,值6来自索引61:70
我尝试了以下方法:
file = 'file.txt'
STR1 = 'F2REAL'
def get_data():
with open(file) as f:
hyd_all = f.readlines()
for line in hyd_all:
if STR1 in line:
print([float(line[10:19]),float(line[20:29])])
get_data()
def parse_scientific(s):
root = float(s.split('E')[0])
exp = int(s.split('E')[1])
return root*(10**exp)
def get_data():
with open(file) as f:
hyd_all = f.readlines()
for line in hyd_all:
if line.startswith(STR1):
item_values = [parse_scientific(line[offset*10:offset*10+10]) for offset in range(1,7)]
使用item_values
插入矩阵
file = 'file.txt'
STR1 = 'F2REAL'
def get_data():
with open(file) as f:
hyd_all = f.readlines()
for line in hyd_all:
if STR1 in line:
print(line[10:20],line[20:30],line[30:40],line[40:50],line[50:60],line[60:70])
get_data()
结果如下:
>
你可以用列表理解
假设您正在谈论一个numpy矩阵(否则只需切换到pandas数据帧):
import numpy as np
def get_data(path: str, target: str, width: int = 10):
values = []
with open(path, 'r') as f:
for line in f.readlines():
# 'F2REAL' should be at the beginning of the line not just anywhere
if line.startswith(target):
# map sequential fixed widths to float
values.append([float(line[width*i:width*(i+1)]) for i in range(1, 7)])
return np.asarray(values)
print(get_data('file.txt', 'F2REAL'))
输出:
[[ 1.146e+00 -1.015e+03 -2.206e+03 -2.618e+03 -2.288e+03 -1.400e+03]
[ 6.255e+00 -3.254e+02 -8.150e+02 -1.060e+03 -9.749e+02 -5.995e+02]
[ 1.754e+01 -1.530e+02 -4.375e+02 -5.932e+02 -5.618e+02 -3.536e+02]
[ 1.740e+01 -7.981e+01 -2.525e+02 -3.748e+02 -3.891e+02 -2.739e+02]]
这个问题似乎不是关于特定的编程问题、软件算法或主要由程序员使用的软件工具。如果您认为该问题将在另一个Stack Exchange站点上讨论,您可以留下评论,解释该问题可以在何处回答。 未解决原始关闭原因 我有一个大小为2.5 GB的日志文件。有没有办法使用windows命令提示符将此文件拆分为更小的文件?
我正在尝试用Python以编程方式拆分wav文件。基于stackoverflow的提示以及Python wave模块的文档,我将执行以下操作 我迭代了许多不同的起始值和结束值,并以这种方式从原始文件中提取音频块。奇怪的是,这种技术对某些块非常有效,而对其他块产生垃圾白噪声。此外,没有明显的模式表明起始位置和结束位置会产生白噪声,只是输入文件会持续产生白噪声。 有人以前经历过这种行为吗?或者知道我做
问题内容: 给定捆绑中文件的名称,我想将该文件加载到我的Swift应用程序中。所以我需要使用这种方法: 无论出于何种原因,该方法都需要将文件名与文件扩展名分开。很好,在大多数语言中将两者分开很容易。但是到目前为止,在Swift中我还没有发现。 所以这是我所拥有的: 如果我在第一行中不包含键入内容,则在随后的两行中都会出现错误。有了它,我在第一行得到一个错误: 如何从扩展名中拆分文件名?有一些优雅的
问题内容: 我得到一个包含以下内容的文本文件(12 MB): 有什么办法来分流到12个* .txt文件让说,,(......)? 问题答案: 您可以使用linux bash核心实用程序 注意,或两者都OK,但大小不同。MB为1000 * 1000,M为1024 ^ 2 如果要按行分隔,可以使用参数。 更新 Kirill建议的另一种解决方案,您可以执行以下操作 请注意,是不是,有几个选项,比如,,,
我的Android应用程序中有以下字符串:
问题内容: 我有一些带有时间信息的文本文件,例如: 现在,我需要文件的第三列来计算平均值。 我怎样才能做到这一点?我需要获取所有文本行,然后获取最后一列? 问题答案: 您可以阅读通过线使用的文件中的行或,甚至一些其他techinique。使用扫描仪非常简单,如下所示: 要使用定义的分隔符分割字符串,可以使用split方法,该方法将正则表达式作为参数,并按与该表达式匹配的所有字符序列分割字符串。就您