来自多个文件的Python txt矩阵

用户名

如何将多个TXT文件的逐行频率分布转换为单个矩阵?每个文件都具有完全相同的结构,因为所有单词/术语/短语都以相同的顺序排列并包含在每个文件中。每个文件的唯一性是文件名,发布日期以及在“:”后加数字的单词/术语/短语的相应频率,请参见以下内容:

How my input files look like:

FilenameA Date:31.12.20XX
('financial' 'statement'):15
('corporate-taxes'):3
('assets'):8
('available-for-sale' 'property'):2
('auditors'):23

我有多个文件,它们的词/短语顺序完全相同,只是频率不同(“:”后面的数字)

现在,我想创建一个包含矩阵的文件,该文件将所有单词保留在第一列,并将文件特征(文件名,日期和频率)附加为按行输入:

Desired Output:

Filename  Date  ('financial' 'statement') ('corporate-taxes') ... ('auditors)
A         2008             15                      3                  23
B         2010              9                      6                  11
C         2013              1                      8                   4
...
.
.

非常感谢您的帮助,如果有一个循环可以从目录中读取所有文件并输出上述矩阵,那将非常棒。

杰米·科伯恩(Jamie Cockburn)

以下代码应为您提供帮助:

import os

# Compute matrix
titles = ['Filename', 'Date']
matrix = [titles]
for directory, __, files in os.walk('files'): # replace with your directory
    for filename in files:
        with open(os.path.join(directory, filename)) as f:
            name, date = f.readline().strip().split()
            row = [name[8:], date.split('.')[-1]]
            for line in f:
                header, value = line.strip().split(':')
                if len(matrix) == 1:
                    titles.append(header)
                row.append(value)        
        matrix.append(row)

# Work out column widths
column_widths = [0]*len(titles)
for row in matrix:
    for column, data in enumerate(row):
        column_widths[column] = max(column_widths[column], len(data))
formats = ['{:%s%ss}' % ('^' if c>1 else '<', w) for c, w in enumerate(column_widths)]

# Print matrix
for row in matrix:
    for column, data in enumerate(row):
        print formats[column].format(data), 
    print

样本输出:

Filename Date ('financial' 'statement') ('corporate-taxes') ('assets') ('available-for-sale' 'property') ('auditors')
A        2012            15                      3              8                      2                      23     
B        2010             9                      6              8                      2                      11     
C        2010             1                      8              8                      2                      4      

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用rsync同步来自多个目录的txt文件

来自分类Dev

Javascript表使用来自多个txt文件的数据并显示在html文件上

来自分类Dev

将来自多个jtextfields和组合框的数据保存到.TXT文件

来自分类Dev

Java矩阵数组txt文件

来自分类Dev

来自多个文件的Python多线程

来自分类Dev

来自多个文件的Python多线程

来自分类Dev

如何从Rust中的txt文件读取矩阵?

来自分类Dev

如何从Rust中的txt文件读取矩阵?

来自分类Dev

从txt文件中读取数字矩阵

来自分类Dev

阅读txt并将其放入python矩阵

来自分类Dev

将大型矩阵保存到python中的.txt文件中

来自分类Dev

Python-将矩阵写入txt文件,保持格式

来自分类Dev

来自文件python的矩阵的ColSum

来自分类Dev

计数来自txt文件的矩阵,使用grep -c来制表符分隔的文件吗?

来自分类Dev

将txt文件转换为邻接矩阵

来自分类Dev

如何将矩阵matlab转换为.txt文件?

来自分类Dev

如何在Python中合并来自多个文件夹的多个CSV文件?

来自分类Dev

加载包含python中的字符串作为矩阵的txt文件

来自分类Dev

来自文件txt的Python总和时间

来自分类Dev

使用python显示来自多个文件夹的随机图像

来自分类Dev

同时将来自多个Python进程的视频帧写入单个文件

来自分类Dev

如何在Python中使用xarray联接来自多个netCDF文件的数据?

来自分类Dev

来自同一个txt文件的多个值

来自分类Dev

使用熊猫对来自多个csv文件的数据求和

来自分类常见问题

使用mocha.js加入来自多个文件的测试

来自分类Dev

堆叠来自多个数据文件的行

来自分类Dev

XSLT:收集并合并来自多个文件的信息

来自分类Dev

如何使用jq合并来自多个文件的JSON记录

来自分类Dev

堆叠来自多个数据文件的行

Related 相关文章

热门标签

归档