[英]How to replace a column in a text file using a list?
我想根据另一个文本文件中的值替换文本文件中的列。 我跳过了前3个标题行,并将文件1的第二列读入列表L,并希望替换文件2中的列2。 以下是我所拥有的:
L = []
for index, line in enumerate(open("C:/file1.txt", "r")):
if index <= 2:
continue
else:
L.append(line.split()[1])
例如:
L = ['2.3','1.2']
和文本文件是:
x y z
1.1 2.1 1.4
1.9 1.8 2.1
我想用列表L值替换变量y下的值。 任何建议将是感激的。
假设列表中的元素数与文件中的行数相同,这是一种实现方法。 还假设您要在元素之间使用制表符。 还要假设“第2列”表示第二列,其python索引为1。 在OSX或Linux上,可以通过在命令后放置> editedfile.txt
来捕获编辑的文件。 如果有四列或更多列,则只需放置elements[2:]
而不是elements[2]
:
# This must have the same number of values as lines in the file
L = ['2.3','1.2']
with open("file1.txt", "r") as f:
# skip the first line but output it?
print f.readline().rstrip('\n')
for value,line in zip(L,f):
elements = line.split()
print "{}\t{}\t{}".format(elements[0],value,elements[2])
输出(中间值已更改为2.3
和1.2
,我替换了带有空格的制表符进行格式化):
x y z
1.1 2.3 1.4
1.9 1.2 2.1
您可能需要itertools.izip
或itertools.izip_longest
:
import itertools
with open(fname1) as f1, open(fname2) as f2:
for line1, line2 in itertools.izip(f1, f2):
pass # some computations here
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.