一个问题(现在):逐行读取文件夹中的所有文件

时间:2019-05-20 13:57:38

标签: python-3.x datetime multiple-files

Medium = Python

问题1。(主要问题)我试图逐行读取特定目录中的所有文件。但是,读取第一个文件后,第二个文件不会打开。

问题2。(已解决)输出日期作为文件名。下面的代码可以做到这一点。 (拉斐尔帮助了)

我最初编写的代码非常适合1个文件,但是,当我尝试通过提供目录路径,然后遍历所述目录中的每个文件来添加多个文件功能时,该程序只能读取其中一个文件。

1。)要尝试解决多个文件的问题,我认为也许需要清除或删除尝试重新实例化/读取新文件时创建的readlines功能列表。 (如果是这样的话,它仍然会通过初始打开的文件。)(我还最初测试了三个文件,因此测试了print(files [0]-[3])。

import os
import sys
import datetime

def main():

    date_object = datetime.date.today()
    dateString = date_object.strftime('%m-%d-%Y')
    print(dateString)
    dateString = dateString + ".txt"
    print(dateString)
    fileWrite = dateString


    #open or create fileWrite
    try:
        fW = open(fileWrite, "a+")
    except IOError:
        print ("Did not create File: " + fileWrite)
        sys.exit()

    #walks through all files in folder SeperateProject/Devices
    #path = 'Test path to directory here'
    #path = 'C:/Users/Bosborne/Desktop/Circuits/SeparateProject/Devices'
    files = os.listdir(path)  # Get all the files in that directory
    print("Files in '%s': %s" % (path, files))
    print(files[0], files[1], files[2])
    for filename in os.listdir(path):
        fileRead = filename

        #add in ability to Walk through device list (.txt)
        #create error catches here
        try:
            fR = open(filename, "r")
        except IOError:
            print ("Could not open File: " + filename)
            sys.exit()
        try:
            fRead = fR.readlines()
        except IOError:
            print ("Could not read File: " + filename)
            sys.exit()

        #add walk through list to DEV
        DEV = filename
        #show list of included devices
        print(DEV)

        #Tried to fix the error of not being able to open file 2
        fRead.clear()
        del fRead[:]

        fR.close()
        print("close fileRead")
    fW.close()
    print("close fileWrite")
    return


#run main
if(__name__ == '__main__'):
        main();

期望它能够打开目录中的每个文件,因为它会在检查目录中的所有文件时#检索每个文件的正确名称。 (无法打开第二个文件) 这是一些输出

PS C:\ Users \ Bosborne \ Desktop \ Circuits \ SeparateProject> python。\ TestOPEN.py

05-21-2019

05-21-2019.txt

“ C:/ Users / Bosborne / Desktop / Circuits / SeparateProject / Devices”中的文件: ['001p01.txt','001p02.txt','001p03.txt']

001p01.txt 001p02.txt 001p03.txt

001p01txt

关闭fileRead

无法打开文件:001p02.txt

PS C:\ Users \ Bosborne \ Desktop \ Circuits \ SeparateProject>

1 个答案:

答案 0 :(得分:0)

我知道了。我试图打开/读取每个文件,就像它们在cwd中一样,而不是在open语句中执行os.path.join。

fR = open(os.path.join(path,filename),“ r”)