【问题标题】:How to create the output text file in the respective sub directories in Python?如何在 Python 的各个子目录中创建输出文本文件?
【发布时间】:2014-04-03 07:03:58
【问题描述】:

我使用以下代码选择了根目录内所有子目录中存在的所有 (.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) 源文件所在的相应文件夹中?

(*根目录不是当前工作目录,不同)

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    使用os.path.dirname()获取文件所在目录的路径。

    如果您需要在旧文件的基础上生成新文件名,您可以改用os.path.split(),将文件名拆分为目录和基本名称:

    directory, base = os.path.split(filename)
    new_filename = os.path.join(directory, 'analyzed_' + filename)
    

    【讨论】:

      【解决方案2】:

      如果您的解决方案在 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
      

      如果您需要汇总这些文件并在全部加载后做一些工作。你需要分别保存它们的路径。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-01-06
        • 1970-01-01
        • 1970-01-01
        • 2014-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多