我有9个txt文件。每个文字都像:
[(0.0, 32.633221, 39.91769),
(8.32, 32.633717, 39.917892),
(25.35, 32.633945, 39.917538),
(25.93, 32.634262, 39.916946),
(7.24, 32.634888, 39.91674),
(0.0, 32.635014, 39.916737),
(15.31, 32.635242, 39.916569),
(22.12, 32.635727, 39.916176)....
我想创建一个只包含每个元素的第一个元素的新文本文件。我的意思是:
list_firsttxtfile = [(0.0), (8.32), (25.35), (25.93),... ]
答案 0 :(得分:0)
另一种方法。
list_firsttxtfile = []
with open("mytextfile.txt", "r") as f:
data = f.read()
parts = data.split("\)")
for part in parts:
sections = part.split(",")
list_firsttxtfile.append(sections[0])
答案 1 :(得分:0)
如果文件的每一行都包含至少一个浮点数,则可以使用正则表达式提取它:
import re
first_float = re.compile(r'[-+]?\d*\.?\d+')
with open("firstfile.txt") as txtfile:
# if line.strip() skips blank lines if any
list_first_txt_file = [float(first_float.search(line).group()) for line in txtfile if line.strip()]
请注意,如果您的文件包含正则表达式不匹配的行,则它将失败并显示AttributeError: 'NoneType' object has no attribute 'group'
。您可以将列表理解的if
部分更改为if first_float.search(line)
以避免这种情况,但它会在同一行上运行正则表达式两次,如果您的文件很大,这可能不会很好。
如果您确定没有空行并且每行都匹配,那么您可以完全删除if
。