2024-05-16 00:07:52 发布
网友
我有一个非常基本的问题。我有一个名为Dipole_E0=1.2625E-01.dat的文件,我想提取1.2625E-01部分,最后按升序排序。如何做到这一点?我首先尝试用.split()来plit文件名,但它不是我所期望的。谢谢你的帮助。你知道吗
Dipole_E0=1.2625E-01.dat
1.2625E-01
最好的
罗兰
最好的方法是使用regexp。要从文件名获取值,请执行以下操作:
m = re.search(filename, '^Dipole_E0=(.*)/s?') val = m.group(0)
遍历所有dilename并将所有值附加到数组中。就这样。你知道吗
你想研究正则表达式。在python中,它们生活在re模块中。根据具体的格式,例如:
import re ematch = re.compile("=([0-9]*\.[0-9]*[eE][+-][0-9]+)") val = ematch.search(filename).group(0)
可以使用lists上的.sort()方法对列表进行排序,也可以使用sorted(list)builtin对列表进行排序,这将为您提供一个新列表。你知道吗
这是使用generator expression和the ^{} builtin的好情况:
sorted(float(filename.split("=", 1)[1].rsplit(".", 1)[0]) for filename in filenames)
其中filenames是文件名列表。你知道吗
filenames
>>> filenames = ["Dipole_E0=1.2625E-01.dat", "Dipole_E0=1.3625E-01.dat", "Dipole_E0=0.2625E-01.dat"] >>> sorted(float(filename.split("=", 1)[1].rsplit(".", 1)[0]) for filename in filenames) [0.02625, 0.12625, 0.13625]
最好的方法是使用regexp。要从文件名获取值,请执行以下操作:
遍历所有dilename并将所有值附加到数组中。就这样。你知道吗
你想研究正则表达式。在python中,它们生活在re模块中。根据具体的格式,例如:
可以使用lists上的.sort()方法对列表进行排序,也可以使用sorted(list)builtin对列表进行排序,这将为您提供一个新列表。你知道吗
这是使用generator expression和the ^{} builtin 的好情况:
其中
filenames
是文件名列表。你知道吗相关问题 更多 >
编程相关推荐