我使用以下代码选择了根目录下所有子目录中存在的所有(.txt)文件。
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
dirname = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a directory')
pattern = "*.txt"
for path, subdirs, files in os.walk(dirname):
for name in files:
if fnmatch(name, pattern):
filename=os.path.join(path,name)
现在我有了100个(.txt)文件,这些文件存在于不同的子目录中。现在我使用NLTK来分析(.txt)文件,我想将输出保存在各个子目录中作为单独的(.txt)文件。
如何将输出保存在主(.txt)源文件所在的相应文件夹中?
(*根目录不是当前的工作目录。它是不同的)
答案 0 :(得分:0)
使用os.path.dirname()
获取文件所在目录的路径。
如果您需要根据旧文件名生成新文件名,则可以使用os.path.split()
来将文件名拆分为目录和基本名称:
directory, base = os.path.split(filename)
new_filename = os.path.join(directory, 'analyzed_' + filename)
答案 1 :(得分:0)
如果你的解决方案在O(n)之内,那么只需走路读写。
import Tkinter, tkFileDialog
root = Tkinter.Tk()
root.withdraw()
dirname = tkFileDialog.askdirectory(parent=root,initialdir="/",title='Please select a
directory')
pattern = "*.txt"
for path, subdirs, files in os.walk(dirname):
for name in files:
if fnmatch(name, pattern):
filename=os.path.join(path,name)
new_filename=os.path.join(path,'new'+name)
#do your work for filename and save to new_filename
如果您需要将这些文件相加并在加载它们之后执行一些操作。你需要分别保存它们的路径。