如何在python中打开格式为[[skill1, skill2, skill3, ..], [skill1, skill



如何打开格式的大文本文件

[[skill1, skill2, skill3, ...], [skill1, skill4, skill6, ...], ….]

在 Python 中。我尝试过使用熊猫和numpy,但read_csv方法或其他此类方法不起作用。

更新:我能够使用以下代码行读取.txt文件:

f = open("demofile.txt", "r")
print(f.read(5))

由于您没有明确提到该文件包含任何换行符,因此我将使用以下方法。编写一些自定义 Python 代码来

  • 加载文件
  • 搜索并将 "], [" 替换为 "">
  • 搜索并将"["替换为"。
  • 将此文件保存在磁盘上,并将其加载为 CSV 格式,并使用","作为分隔符。

对于大文件,我可能会使用 SED。以下代码执行上述操作。它的工作原理是逐个字符读取并检查上次读取的字符是什么。根据几个 if,我确定要执行的操作。注意:我只花了几分钟,它肯定会得到优化。输入文件不需要换行符,输出将具有换行符。

lastreadchar = ''
with open("data.txt",mode='r') as i, open('out.txt','w') as o:
while True:
x = i.read(1)
if x == '': # end of file has been reached
break 
elif x==' ':
pass
elif x==']':
pass
elif x=='[':
if lastreadchar == '[': 
# at the beginning of the file, don't do anything
pass
elif lastreadchar == 'n': # a new line
pass   
elif lastreadchar == ',': # a new line
pass
elif x==',':
if lastreadchar == ']': # at the beginning of the file
print('n')
o.write('n')
else:
print(x, end='')
o.write(x)
else:
print(x, end = '')            
o.write(x)
lastreadchar = x

对于非常大的文本文件(在多 GB 范围内(,我可能会使用 SED 以这种方式处理文件。

您可以尝试逐行读取(如果您的文件是用行格式编写的(并附加数据。

for line in open('yourfile.big'):
do_something(line)

也许那时您可以尝试以ORC格式的镶木地板保存像您这样的大型(结构化(数据文件

我能够使用以下代码行读取.txt文件 f = open("demofile.txt", "r"( print(f.read(5((

更新答案:我最终做的是:

with open('file.txt') as f:
mylist = list(f)
temp = mylist[0]
l =  temp.split(']')
l.pop(0)
for x in range(0,len(l)):
l[x] = l[x][3:]
l[x] = l[x].split(', ')

上面的代码最终在列表中生成了一个列表。 因此,如果我访问 l[0][0],它会给我技能 1。 数据格式如下 [[技能 1

, 技能 2, 技能 3, ...], [技能 1, 技能4, 技能6, ...], ....]思潮?

相关内容

  • 没有找到相关文章

最新更新