[英]Ruby - How to subtract numbers of two files and save the result in one of them on a specified position?
我有2个txt文件,其中用不同的字符串和数字分隔;
现在我需要减去(((文件1中位置2上的数字)--(文件2中位置25上的数字)))=结果现在我想用结果替换((文件1中位置2上的数字))。 我在下面尝试了我的代码,但是它仅将数字附加在文件的末尾,而不是附加在计算结果上的数字。
def calc
f1 = File.open("./file1.txt", File::RDWR)
f2 = File.open("./file2.txt", File::RDWR)
f1.flock(File::LOCK_EX)
f2.flock(File::LOCK_EX)
f1.each.zip(f2.each).each do |line, line2|
bg = line.split(";").compact.collect(&:strip)
bd = line2.split(";").compact.collect(&:strip)
n = bd[2].to_i - bg[25].to_i
f2.print bd[2] << n
#puts "#{n}" Only for testing
end
f1.flock(File::LOCK_UN)
f2.flock(File::LOCK_UN)
f1.close && f2.close
end
使用这样的东西:
lines1 = File.readlines('file1.txt').map(&:to_i)
lines2 = File.readlines('file2.txt').map(&:to_i)
result = lines1.zip(lines2).map do |value1, value2| value1 - value2 }
File.write('file1.txt', result.join(?\n))
此代码将所有文件加载到内存中,然后计算结果并将其写入第一个文件。
仅供参考:如果您要使用代码,只需将结果保存到其他文件(即result.txt
),最后将其复制到原始文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.