如何打开格式的大文本文件
[[skill1, skill2, skill3, ...], [skill1, skill4, skill6, ...], ….]在Python里。我试过使用Pandas和numpy,但是read_csv方法或其他类似的方法不起作用。
更新:我能够使用以下代码行读取.txt文件:
f = open("demofile.txt", "r")
print(f.read(5))发布于 2019-12-13 16:11:47
由于您没有明确提到该文件包含任何换行符,所以我将使用以下方法。编写一些自定义Python代码
对于巨大的文件,我可能会使用SED。下面的代码执行上述操作。它的工作方式是逐字阅读,并检查上一次读的字符是什么。基于几个ifs,我确定要执行的操作。注意:我只花了几分钟在这个问题上,它肯定会被优化。输入文件不需要有换行符,输出就会有它们。
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以这种方式处理该文件。
发布于 2019-12-13 16:08:56
您可以尝试逐行读取(如果您的文件是用行格式写入的)并附加数据。
for line in open('yourfile.big'):
do_something(line)也许你可以试着把像你这样的大(结构化)数据文件保存在ORC格式的拼板上。
发布于 2019-12-13 17:50:50
我能够使用下面的代码f= open("demofile.txt","r")打印(f.read(5))读取该f.read文件
最新答案:我最后做的是:
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,它给了我技能1。数据的格式如下[skill1,skill2,skill3,.,skill1,skill4,skill6,.,…. .]
有什么想法?
https://stackoverflow.com/questions/59325991
复制相似问题