python - 从多个文件中读取一行并写入一个文件

标签 python

我有大约 45,000 个文件。我的目的是从每个文件中提取某一行并将它们累积在单个文件中。

我尝试使用 glob.glob,但问题是使用此模块时,文件的顺序似乎是混合的。

filin= diri+ '*.out'
list_of_files = glob.glob(filin)
print list_of_files 
with open("A.txt", "w") as fout:
    for fileName in list_of_files:
        data_list = open( fileName, 'r' ).readlines()
        fout.write(data_list[12])

上面是我使用的代码。主要是借用了本论坛别人的代码。

我想按顺序读取所有“.out”文件。每个文件都包含一分钟间隔的数据。例如,一个文件包含 2014/1/1/00:00 的数据,后续文件包含数据at 2014/1/1/00:01。所以按顺序读取这些文件非常重要。但是,当我使用上面的 glob.glob 和 print list_of_files 时,文件顺序似乎很困惑。我可以解决这个问题吗?

另外,如上所示,我想从每个文件的顶部读取第 12 行,但结果反复显示“超出索引”。

这个问题看起来组织得不太好。任何想法或帮助将不胜感激。

P.S 文件名如:Data_201308032343.out、Data_201308032344.out、Data_201308032345.out ……

谢谢。

最佳答案

os.listdir documentation 中所述,目录条目以任意顺序返回。如果您想应用特定订单,您需要确保自己:

list_of_filenames = glob.glob(input_fileglob)
sorted_list_of_filenames = sorted(list_of_filenames)

with open("A.txt", 'w') as outfile:
    for filename in sorted_list_of_filenames:
        data_list = open(filename).readlines()
        outfile.write(data_list[12])

关于python - 从多个文件中读取一行并写入一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23798754/

相关文章:

python - 如何创建一个具有固定外部结构的随机json字典用于单元测试?

python - 使用相似度函数对 scikit-learn 进行聚类

python - 使用 Apache Beam Python `WriteToFiles` 转换为每个窗口只写入一个文件

Python - 迭代 list.append 的结果

python - 将一个类的多个函数绑定(bind)到另一个类的类事件: is there a better/shorter way?

python - 正则表达式解析来自 Multicraft 的行

python - Fedora 17 中的 vpython GdkGLExt-警告

python - 动态扩展 urlpatterns

python - 为什么 python 的解析器会在这个简单的输入上抛出错误?

python - 如何生成没有连续数字的随机整数列表?