我有一些代码可以将大文件复制/粘贴到需要的已解析文件中。这是一个工作脚本。
with open('C:\\Users\\Excel\\Desktop\\test_in.txt') as infile, open('C:\\Users\\Excel\\Desktop\\test_out.txt', 'w') as outfile:
copy = False
for line in infile:
if line.strip() == "Start":
copy = True
elif line.strip() == "End":
copy = False
elif copy:
outfile.write(line)
现在,我试图弄清楚如何转置每个测试块,并多次交换相邻的数据点。也许这需要一个dta框架,我不确定。
这是一张之前的图片。
这是一张残像。
这是我的示例文字。
file name
file type
file size
Start
- data_type: STRING
name: Operation
- data_type: STRING
name: SNL_Institution_Key
- data_type: INTEGER
name: SNL_Funding_Key
End
- data_type: STRING
name: Operation
- data_type: STRING
name: SNL_Institution_Key
- data_type: INTEGER
name: SNL_Funding_Key
Start
- data_type: STRING
name: SEDOL_NULL
- data_type: STRING
name: Ticker
- data_type: DATETIME
name: Date_of_Closing_Price
End
在我看来,这在Python中很难做到。如果很难做到所有这些,请告诉我。 Python可能不是正确的工具。我对Python不够了解,无法确定这是否是正确的方法。感谢您的宝贵时间。
答案 0 :(得分:1)
按冒号分割行,然后以不同顺序合并它们。 我添加了一些标志来实现与文件中完全相同的标点符号, 但是对于中等大小的数据,我通常使用带有多个正则表达式或字符串替换的迭代
with open('C:\\Users\\Excel\\Desktop\\test_in.txt') as infile,
file_start = True
line = line.strip()
next(infile)
next(infile)
next(infile)
for line in infile:
if line.strip() == "Start":
if file_start:
file_start = False # write nothing first time
else:
outfile.write('\n')
line_start = True # starting new line in the output file
elif not line.strip() == "End":
if not line_start:
outfile.write(", ")
linestart = False
line = line.strip(" -")
s = line.split(": ")
outfile.write(": ".join(s[::-1]))