【发布时间】:2018-10-31 14:02:01
【问题描述】:
假设我有两个文件,file1.txt,file2.txt。
file1.txt 如下
TITLE MEARA Repeatv2 Run2
DATA TYPE
ORIGIN JASCO
OWNER
DATE 18/03/08
TIME 22:07:45
SPECTROMETER/DATA SYSTEM JASCO Corp., J-715, Rev. 1.00
RESOLUTION
DELTAX -0.1
XUNITS NANOMETERS
YUNITS CD[mdeg]
HT[V]
FIRSTX 260
LASTX 200
NPOINTS 601
FIRSTY -4.70495
MAXY -4.70277
MINY -41.82113
XYDATA
260.0 -4.70495 443.669
259.9 -4.70277 443.672
259.8 -4.70929 443.674
259.7 -4.72508 443.681
259.6 -4.72720 443.69
file2.txt 是这样的:
TITLE MEARA Repeatv2 Run2
DATA TYPE
ORIGIN JASCO
OWNER
DATE 18/03/08
TIME 22:30:34
SPECTROMETER/DATA SYSTEM JASCO Corp., J-715, Rev. 1.00
RESOLUTION
DELTAX -0.1
XUNITS NANOMETERS
YUNITS CD[mdeg]
HT[V]
FIRSTX 260
LASTX 200
NPOINTS 601
FIRSTY -4.76564
MAXY -3.51295
MINY -41.95971
XYDATA
260 -4.76564 443.152
259.9 -4.77382 443.155
259.8 -4.78663 443.156
259.7 -4.8017 443.162
259.6 -4.83604 443.174
我编写了以下 Python 脚本来连接这两个文件。
def catFiles(names, outName):
with open(outName, 'w') as outfile:
for fname in names:
fileName=('/'+str(fname))
with open(fname) as infile:
outfile.write(infile.read())
虽然此脚本用于连接两个文件, 它将文件堆叠在一起,以便一个文件一个接一个地出现。 我想知道如何修改或重写它,以使文件彼此相邻堆叠;这样我得到以下输出
TITLE MEARA Repeatv2 Run2 TITLE MEARA Repeatv2 Run2
DATA TYPE DATA TYPE
ORIGIN JASCO ORIGIN JASCO
OWNER OWNER
DATE 18/03/08 DATE 18/03/08
TIME 22:07:45 TIME 22:30:34
SPECTROMETER/DATA SYSTEM JASCO Corp., J-715, Rev. 1.00 SPECTROMETER/DATA SYSTEM JASCO Corp., J-715, Rev. 1.00
RESOLUTION RESOLUTION
DELTAX -0.1 DELTAX -0.1
XUNITS NANOMETERS XUNITS NANOMETERS
YUNITS CD[mdeg] YUNITS CD[mdeg]
HT[V] HT[V]
FIRSTX 260 FIRSTX 260
LASTX 200 LASTX 200
NPOINTS 601 NPOINTS 601
FIRSTY -4.70495 FIRSTY -4.76564
MAXY -4.70277 MAXY -3.51295
MINY -41.82113 MINY -41.95971
XYDATA XYDATA
260.0 -4.70495 443.669 260.0 -4.76564 443.152
259.9 -4.70277 443.672 259.9 -4.77382 443.155
259.8 -4.70929 443.674 259.8 -4.78663 443.156
259.7 -4.72508 443.681 259.7 -4.80170 443.162
259.6 -4.72720 443.690 259.6 -4.83604 443.174
【问题讨论】:
-
你想要的不是文件串联。这是一个非常不同的程序。简而言之,打开两个文件,从每个文件中读取一行,连接行,将新行写入输出文件,然后根据需要重复。
-
文件是否总是包含相同的行数?
-
你想用这个实现什么?我不认为你想要实现的是最好的方法。那么为什么您希望将两个文件合二为一?
-
MaxNoe 的意思是,如果您愿意,可以使用不错的文件比较工具。在不同行号上处理相同文本的效果要好得多。
-
您可能想看看 Unix 工具
paste正是这样做的。当然,这不是 Python 中的解决方案。
标签: python python-3.x concatenation