将两件事放在同一行上,然后写入文件

Spacing Two Things On The Same Line Then Writing To File

我正在尝试在同一行的两个不同文件中写两件事 一个不同的文件(即有 3 个文件正在使用。2 个已经有项目和一个新的)

 fin=open("/Users/battledrum/Desktop/review2.txt")
 fin1=open("/Users/battledrum/Desktop/review3.txt")

 fout=open("/Users/battledrum/Desktop/HeightVStime.txt","w")

 a=list()

 for i in range(35):
      fout.write(fin.read()+'\t'+fin1.read())


print(len(a))

这是我希望在新文件中看到的结果:

1.34, 1.54

1.80, 1.39

1.25 , 1.68

1.69 , 1.83

与其假设每个文件中有一定数量的行,不如这样:

with open("/Users/battledrum/Desktop/HeightVStime.txt","w") as fout:
    with open("/Users/battledrum/Desktop/review2.txt") as fin1:
        with open("/Users/battledrum/Desktop/review3.txt") as fin2:
            fout.writelines([(', '.join((x.rstrip('\n'),y))) for x,y in zip(fin1,fin2)])

zip 将合并 fin1fin2 之间的行,因为我们可以将每个文件对象视为一个可迭代对象,如果其中一个文件较长,则将丢弃剩余的行比另一个。

假设文件长度相同

with open(fin) as f1:
    with open(fin1) as f2:
        num1 = [l.strip() for l in f1.readlines()]
        num2 = [l.strip() for l in f2.readlines()]


with open(fout,'w+') as out:
    for i in range(0,len(num1)):
        out.write(','.join([num1[i], num2[i]])+'\n')

这里有很多错误:

  • file.read() 获取文件的全部内容,因此您正在写入(整个第一个文件)+ tab +(整个第二个文件)您要逐行读取的位置.

  • 您永远不会附加到 a,因此 len(a) 将始终为 0。

  • 您在 a 中想要的内容不是很清楚 - 逐行文件内容?

我想你想要更像

的东西
HEIGHT_FILE = "/Users/battledrum/Desktop/review2.txt"
TIME_FILE   = "/Users/battledrum/Desktop/review3.txt"
OUTPUT_FILE = "/Users/battledrum/Desktop/HeightVStime.txt"

def main():
    # load data pairs
    with open(HEIGHT_FILE) as hf, open(TIME_FILE) as tf:
        hts = [(height.strip(), time.strip()) for height,time in zip(hf, tf)]
    # write output
    with open(OUTPUT_FILE, "w") as outf:
        lines = ("{}\t{}".format(h, t) for h,t in hts)
        outf.write("\n".join(lines))
    print("{} lines written".format(len(hts)))

if __name__=="__main__":
    main()