【问题标题】:Modify function to output and save list修改函数以输出和保存列表
【发布时间】:2017-05-04 07:11:55
【问题描述】:

我试图从大约 1000 个 csv 文件名中返回一个单元编号列表。我可以读入它们,然后让 python 从它们周围删除所有垃圾并替换第 5 个字符以按照我需要的方式对其进行格式化。我想返回所有单元号的列表,例如 ['6726-0501', '6826-1144']。我目前得到的是它一一打印出单元号而不是保存它们。我已经查看了以前的问题,但似乎无法获得创建列表然后将单元编号附加到列表并将该列表保存到变量以工作的模式。有谁知道简单修改它以输出列表并保存列表供以后使用的好方法?

谢谢,

罗宾

file_names = ['job_1106_unit_672600501_las_PN23074.LAS.csv', 'job_1108_unit_682601144_las_PN23072.LAS.csv']


def change(file_names):
    for comps in file_names:
         comps_of_comps = list(comps)
         unit_num = comps_of_comps[14:23] #[672600501]
         a = (unit_num[0:4])  #[6726]
         b = (unit_num[5:9])   #[0501]
         unit_num = a + list('-') + b  #[6,7,2,6,-,0,5,0,1]
         unit_num = ''.join(unit_num) #6726-0501
         print unit_num

change(file_names)

【问题讨论】:

    标签: python function file-management


    【解决方案1】:

    您可以初始化一个新列表并附加到它并返回该列表。喜欢

    file_names = ['job_1106_unit_672600501_las_PN23074.LAS.csv', 'job_1108_unit_682601144_las_PN23072.LAS.csv']
    def change(file_names):
        result = []
        for comps in file_names:
             comps_of_comps = list(comps)
             unit_num = comps_of_comps[14:23] #[672600501]
             a = (unit_num[0:4])  #[6726]
             b = (unit_num[5:9])   #[0501]
             unit_num = a + list('-') + b  #[6,7,2,6,-,0,5,0,1]
             unit_num = ''.join(unit_num) #6726-0501
             result.append(unit_num)
        return result
    
    print change(file_names)
    

    import re
    
    def change(file_names):
        result = []
        for i in file_names:
            s = re.match('.*unit_(.*)_las.*', i).group(1)
            result.append(s[:len(s)/2]+"-"+s[(len(s)/2)+1:])
        return result
    

    【讨论】:

    • 谢谢,我选择了第一个选项,效果很好。感谢您的帮助。
    猜你喜欢
    • 2011-02-12
    • 1970-01-01
    • 2021-01-05
    • 2018-08-29
    • 2020-11-18
    • 2016-08-26
    • 1970-01-01
    • 2022-07-09
    相关资源
    最近更新 更多