阅读" list = [] [] []"从几个txt文件列出

时间:2015-09-16 09:24:40

标签: python list

我有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),... ]

2 个答案:

答案 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