我有一个大文本文件,每行都有一个单词后跟一组向量。它们都被空格隔开。文本文件如下所示:
movie 0.545454545455 0.0 0.0 0.0 0.0 0.0 0.0454545454545 0.0454545454545 ...
film 0.571428571429 0.0 0.0 0.0 0.047619047619 0.0 0.047619047619 0.0 0.0 0.0 ...
the 0.5625 0.1875 0.0 0.0 0.0 0.0625 0.0 0.0 0.0 0.0 0.0 0.0 0.0625 0.0 0.0625 0.0 0.0 0.0 ...
see 0.6 0.1 0.0 0.0 0.0 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ...
如何摆脱此文件中的单词,但保持原样?
预期结果是:
0.545454545455 0.0 0.0 0.0 0.0 0.0 0.0454545454545 0.0454545454545 ...
0.571428571429 0.0 0.0 0.0 0.047619047619 0.0 0.047619047619 0.0 0.0 0.0 ...
0.5625 0.1875 0.0 0.0 0.0 0.0625 0.0 0.0 0.0 0.0 0.0 0.0 0.0625 0.0 0.0625 0.0 0.0 0.0 ...
0.6 0.1 0.0 0.0 0.0 0.1 0.0 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 ...
答案 0 :(得分:1)
for line in text:
(" ").join(line.split(" ")[1:])
答案 1 :(得分:0)
如果单词可以出现在该行的任何位置,您可以读取该文件,删除文本,然后再将其存储回来。
import re
with open('largefile.txt') as f:
lines = f.readlines()
for i, line in enumerate(lines):
lines[i] = re.sub("^[0-9+\s]", "", line) # remove everything that is not a number or space
with open('largefile.txt', 'w') as f:
f.writelines(lines)
我不确定正则表达式是否完美,但是当我尝试它时起作用。为了以防万一,请备份。
答案 2 :(得分:0)
您可以通过编辑此文件来创建另一个文件。我就是这样做的。
with open('first_file.txt','w+') as myFile, open('file_two.txt','w') as writeFile:
data = myFile.read()
for line in data.splitlines():
writeFile.write(''.join(line.split(' ')[1:]) + '\n')
myFile.write(' ')
我写回第一个文件,使其成为零大小的文件,然后您可以保存该空间。