python - 从文本文件中读取数据并将其存储在python中的数组中
问题描述
我正在尝试逐行从文本文件中读取数据并将其存储在二维数组中,以便以后可以进一步处理它。
每次找到字符串“EOE”时,我都想移到新行并继续从文本文件中逐行读取条目。
我似乎无法声明二维字符串数组或成功读取值。我是来自 C 的 python 新手,所以我的语法和对 python 的一般理解不是很好。
rf = open('data_small.txt', 'r')
lines = rf.readlines()
rf.close()
i = 0
j = 0
line_array = np.array((200, 200))
for line in lines:
line=line.strip()
print(line)
line_array[i][j] = line
if line == 'EOE':
i+=1
j+=1
rf.close()
line_array
文本文件如下所示:
-----
Entry1=50
Entry2=SomeText
Entry3=Instance.Test.ID=67
EOE
-----
Entry1=Processing
Entry2=50.87.78
Entry3=Instance.Test.ID=91
EOE
-----
Entry1=50
Entry2=SomeText
Entry3=Instance.Test.ID=67
EOE
-----
我希望数组字符串数组看起来像这样,行和列可以转置,但总体思路是一行或一列代表一个 EOE 条目:
array = [
['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67', 'EOE'],
['-----', 'Entry1=Processing', 'Entry2=50.87.78', 'Entry3=Instance.Test.ID=91', 'EOE'],
['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67', 'EOE']
]
解决方案
这是一种方法。
前任:
res = [[]]
with open(filename) as infile:
for line in infile: #Iterate each line
line = line.strip() #strip new line
if line == 'EOE': #check for `EOE`
res.append([]) #Add new sub-list
else:
res[-1].append(line) #Append content to previous sub-list
print(res)
输出:
[['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67'],
['-----',
'Entry1=Processing',
'Entry2=50.87.78',
'Entry3=Instance.Test.ID=91'],
['-----', 'Entry1=50', 'Entry2=SomeText', 'Entry3=Instance.Test.ID=67'],
['-----']]
推荐阅读
- python-3.x - 具有 2x2 输入的双向 GRU
- visual-c++ - 如何阻止 VC++ 2019 Intellisence 报告系统头文件中的错误?
- swift - SwiftUI View 扩展限制 where 子句导致崩溃
- python - 如何在另一个函数中调用一个函数?Python
- firebase - getter 'uid' 在 null 上被调用,在颤振 firebase 上接收器为 null
- mysql -
MySQL 数据库在前端计算三个以上的值 - python - Fuzzy c 表示出现无效语法错误,即使它已经成功安装在 Google Colabatory 上
- postgresql - Symfony 和 Postgres - 与非公共模式的连接
- c# - .NET 为什么非并发 GC 需要很长时间才能挂起线程
- c# - EventHandler 为空,因此我无法使用 Tapgesturerecognizer 在 MainPage 命令上调用