2015-12-30 39 views
0

我有一个文件夹在众多的CSV文件,我已经变成了一个直角坐标列表,例如:从文件的笛卡尔列表访问数据

import os 
import itertools 

filelist=os.listdir(r'pathway_to_folder') 
result = list(itertools.product(filelist,filelist)) 

结果的内容是这样的:

('file 1', 'file 2') 
('file 1', 'file 3') 
('file 2', 'file 1') 
('file 2', 'file 3') 
('file 3', 'file 1') 
('file 3', 'file 2') 

我怎么会做一些简单的事情,例如打印result中的一件物品的内容?截至目前,他们只是从我所知道的字符串中识别出来的。

+0

要读取文件内容吗? –

+0

确切地说,最终我想对'result'中的每个项目做一个统计测试,但是我不知道如何识别它们是什么文件而不是字符串 –

+0

这些文件是什么类型? CSV? –

回答

1

IIUC你需要打印的是CSV格式的文件的内容。你可以做到这一点与pandasread_csv

import pandas as pd 
for files in result: 
    print(pd.read_csv(files[0]), pd.read_csv(files[1]) 

注:你需要完整路径传递给文件read_csv功能。你可以用os.path.abspath来完成每个元素,例如pd.read_csv(os.path.abspath(files[0]))

1

遍历每个项目可以帮助

for t in result: 
    for fn in t: 
     with open (fn) as f: 
      for line in f: 
       print (line) # or whatever 

正如在评论中提到的,有可能是更好的方法来实现自己的目标,这取决于它们是什么。

E.g使用一个或多个特定的库,例如csvnumpypandas