我想从文件中删除第一列。该文件包含由空格分隔的 3 列,这些列的标题如下:X'、'Displacement' 和 'Force'(请参见图片)。
我想出了以下代码,但令我失望的是它不起作用!
f = open("datafile.txt", 'w')
for line in f:
line = line.split()
del x[0]
f.close()
任何帮助深表感谢 !伊桑
首先,您正在尝试从一个可写入的文件中读取(通过遍历文件内容)。这会给你一个IOError
.
其次,不存在命名x
的变量(您没有在脚本中声明/设置一个)。这将生成一个NameError
.
第三也是最后一点,一旦您完成(正确)读取和编辑文件中的列,您将需要将数据写回文件中。
为了避免一次将一个(可能很大的)文件加载到内存中,最好从一个文件(逐行)读取并同时写入一个新文件。
像这样的东西可能会起作用:
f = open("datafile.txt", "r")
g = open("datafile_fixed.txt", "w")
for line in f:
if line.strip():
g.write("\t".join(line.split()[1:]) + "\n")
f.close()
g.close()
print ''.join([' '.join(l.split()[1:]) for l in file('datafile.txt')])
或者,如果您想保留空格并且您知道第二列总是从第 10 个字符开始:
print ''.join([l[11:] for l in file('datafile.txt')])
一些关于python i/o的阅读可能会有所帮助,但下面的内容应该会让你站起来:
with open("datafile.txt", "r") as fin:
with open("outputfile.txt", "w") as fout:
for line in fin:
line = line.split(' ')
if len(line) == 3:
del line[0]
fout.write(line[0] + ' ' + line[1])
else:
fout.write('\n')
编辑:固定使用空白行