假设我有两个文件,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
在文本编辑器中查看文本文件时,文本文件实际上没有两个维度(宽度和高度)。它实际上只有一个维度。你知道吗
例如,此文件:
实际上包含一个包含两个换行符(
\n
)的字符串:现在,让我们将其与另一个包含以下内容的文件合并:
(或:
'blue\ncheese'
)通常的方法,你称之为垂直,简单地对字符串求和:
您需要的是更复杂的内容,即合并每一行(也可能添加一些间距):
'第一行蓝色\n第二行\n第三行'
直接在两个大字符串的级别上执行此操作是不可能的,因此您需要:
['first line', 'second line', 'third line']
和['blue', 'cheese']
)'first line' + ' ' + 'blue'
)'third line' + ''
)下面是如何一步一步地做到这一点:
要以行的形式读取文件,可以执行
f.read().splitlines()
,但最好是f.readlines()
或只是迭代文件对象(for line in f: ...
)要匹配两个文件的对应行,可以使用
zip_longest
:要串联,请使用填充: '{}{}'。格式(左\行,右\行)
总之,冗长:
现在,您可以跳过大部分中间步骤以使其更简单:)
相关问题 更多 >
编程相关推荐