2014-06-16 77 views
0

阅读文本文件当我使用R,我能读懂它们包含在一个文件夹一次性许多文本文档。 但是,我刚开始学习Python。当我使用命令:file = open('c:/txt/Romney', 'r'),试图打开包含在罗姆尼文件夹中的所有文本文件,我发现我要读内文用一个文件中的一个,我不能阅读所有一次性就像我在河做什么建议吗?文本挖掘:在Python

+3

你所说的“一次性”是什么意思?你想连接它们吗?或者一个一个迭代它们? –

+1

我很好奇R是如何做到的。这种行为听起来像R试图猜测你可能想要做什么 – MxyL

+1

发布你试图在Python中模拟/复制的R代码会有帮助。 – hrbrmstr

回答

5

在像Python语言,你需要使用一个for循环在时间阅读每个文件的内容之一。

(相关:How to list all files of a directory in Python

from os import listdir 
from os.path import isfile, join 

path = "C:/txt/Romney" 
files = [ f for f in listdir(path) if isfile(join(path,f)) ] 

for file in files: 
    with open file as f: 
     text = f.read() 
     do_something_with(text) 
2

除了戴夫Yarwood的回答,如果你真正想要做的是串联的文件,你可以用做:

from os import listdir 
from os.path import isfile, join 
from itertools import chain 

path = "C:/txt/Romney" 
files = [open(f) for f in listdir(path) if isfile(join(path,f))] 

for line in chain(*files): 
    do_something_with(line) 

(只为了好玩,因为我从来没有用过itertools.chain串起来文件之前)

+0

你不应该再对文件的文件做':file.close()'? –

+0

而不会是'[f.open()对于F中...'? –

+0

@DaveYarwood当对象被垃圾收集时,文件会自动关闭。而'listdir'只是返回一个字符串列表,而不是文件句柄。字符串没有“开放”方法。 –