【问题标题】:Reading multiple files from a same folder using python [duplicate]使用python从同一个文件夹中读取多个文件[重复]
【发布时间】:2019-06-25 13:18:31
【问题描述】:

我有数以千计的文本文件,我想使用 python 读取它们。我已成功读取一个文件,现在我不确定如何使用循环或任何其他命令读取多个文件

我尝试通过将保存在字符串中的文本文件的可变字符保存来拆分文件的名称和类型。 例如 我有 3 个文件,分别命名为 file_1、file_2、file_3

我取了一个变量和limit =“1”并将它与文件的完整地址结合起来。现在我想知道如何访问其他两个文件。前提是我不想多次使用同一行代码,因为实际上我有
数千个文件

import os
from os import path
limit1 = "1"
strpath = r"C:/Users/saqibshakeel035/Desktop/SP/text_file_r_w"
print("Your current directory is : %s"  %path.abspath(strpath))
f = open("C:/Users/saqibshakeel035/Desktop/SP/text_file_r_w/file_" + 
limit1 + ".txt", "r")
print(f.read())

此代码适用于 1 个文件。现在我想让我的代码读取多个文件,然后我会将我的文件传输到其他地方。

【问题讨论】:

  • 究竟是什么阻止了您使用循环?

标签: python operating-system


【解决方案1】:

您可以使用 glob.glob 访问文件夹的所有文件路径,并使用 for 循环读取每个文件。

files = [file for file in glob.glob("../somefolder/*")]
for file_name in files:
    with io.open(file_name, 'rb') as image_file:
        content = image_file.read()

【讨论】:

    【解决方案2】:

    您可以使用os.walk 扫描目录中的所有文件。

    import os
    
    for root, dirs, files in os.walk('lang/'):
        for file in files:
            filename, extension = os.path.splitext(file)
            if extension == '.txt':
                # Do Some Task
    

    请注意,如果您可以按文件名或文件扩展名进行过滤。

    例如,如果要获取文件名中包含'hello'的文件,也可以添加

    if 'hello' in filename:
        # Do Some Task
    

    【讨论】:

      【解决方案3】:

      尝试为此使用循环:

      import os
      def main():
          for dirName, subDirList, fileList in os.walk('path'):
              for subDir in subDirList:
                  for file in fileList:
                      #Do something with file
      main()
      

      这会递归地遍历给定目录中的文件。请注意,这也会通过父目录中任何其他子目录中的文件。要改为忽略子目录,请执行以下操作:

      import os
      def main():
          for dirName, subDirList, fileList in os.walk('path'):
              for file in fileList:
                  #Do something with file
      main()
      

      当然你还有其他options

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-20
        • 2015-08-12
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-24
        相关资源
        最近更新 更多