如何使用python在提取零件后删除特定字符
我有一个文本文件,如下所示:如何使用python在提取零件后删除特定字符,python,Python,我有一个文本文件,如下所示: . . . ----------------------- first ATOMIC CHARGES ----------------------- 0 C : -0.157853 1 C : -0.156875 2 C : -0.143714 3 C : -0.140489 4 S : 0.058926 5 H : 0.128758 6 H : 0.128814 7 H : 0
.
.
.
-----------------------
first ATOMIC CHARGES
-----------------------
0 C : -0.157853
1 C : -0.156875
2 C : -0.143714
3 C : -0.140489
4 S : 0.058926
5 H : 0.128758
6 H : 0.128814
7 H : 0.142420
8 H : 0.140013
My charges : -0.0000000
------------------------
.
..
.
为了提取特定部分,我在下面使用了这个脚本
with open('FILE.txt', 'rb') as f:
textfile_temp = f.read()
print textfile_temp.split('first ATOMIC CHARGES')[1].split("My charges : -0.0000000")[0]
我的输出是:
-----------------------
0 C : -0.157853
1 C : -0.156875
2 C : -0.143714
3 C : -0.140489
4 S : 0.058926
5 H : 0.128758
6 H : 0.128814
7 H : 0.142420
8 H : 0.140013
我的目标是删除“--------------------------”字符,我的输出如下:
0 C : -0.157853
1 C : -0.156875
2 C : -0.143714
3 C : -0.140489
4 S : 0.058926
5 H : 0.128758
6 H : 0.128814
7 H : 0.142420
8 H : 0.140013
要删除该行,请尝试:
stringy = stringy.replace("--", "").strip() # assuming an even number of dashes
这将消除所有多余的破折号和换行符
或者,您可以将stringy分解为一系列行,然后使用
stringy = '\n'.join(stringy.splitlines()[1:])
或暴力:
stringy = stringy.replace('-----------------------\n', '')
或者只是改变一下:
print textfile_temp.split('first ATOMIC CHARGES')[1].split("My charges : -0.0000000")[0]
到
使用三元组'
with open('data.txt', 'r') as f:
textfile_temp = f.read()
print(textfile_temp.split('''first ATOMIC CHARGES
-----------------------''')[1].split('My charges : -0.0000000')[0])
@Hamza allal在这个最简单的示例中,您可以从文件数据中找到两个索引
0
编号zero\u ind=file\u data.find(“0”)
str\u ind=file\u data.find(“我的费用”,零\u ind)
文件数据[zero\u ind:str\u ind].split(“\n”)
然后,只需使用“\n”分割文件数据,即可获得所需的所有项目。是否需要一个包含换行符的字符串,或者字符串列表是否适合您?您好,我可以将此行放在哪里,而不只是打印split()命令的输出,而是将输出保存到变量中。然后按照上面的方法处理变量,然后打印变量。好的,我只是修改了答案以显示简单的方式。如果我的答案解决了您的问题,请选择它作为正确答案。快乐编码!我很高兴,非常感谢…一个非常简单有效的方法。一个非常有趣的方法,谢谢。“正确的结果”
with open('data.txt', 'r') as f:
textfile_temp = f.read()
print(textfile_temp.split('''first ATOMIC CHARGES
-----------------------''')[1].split('My charges : -0.0000000')[0])