Один вопрос (сейчас): читать все файлы в папке построчно - PullRequest
0 голосов
/ 20 мая 2019

Средний = Python

Проблема 1. (основная проблема) Я пытаюсь построчно читать все файлы в определенном каталоге.Однако после прочтения первого файла второй не открывается.

Проблема 2. (решено) Дата вывода в виде имени файла.Код ниже делает это сейчас.(Рафаэль помог)

Код, который я изначально написал, отлично работал для 1 файла, однако, когда я попытался добавить несколько файловых функций, указав путь к каталогу, а затем просматривая каждый файл в указанном каталоге,Программа может читать только один из файлов.

1.) Чтобы попытаться решить проблему с несколькими файлами, я подумал, что, возможно, список функций readlines, который создается при попытке переустановить / прочитать новый файл, необходимо очистить или удалить.(однако он все равно прошел бы исходный открытый файл, если бы это было так.) (Кроме того, я первоначально тестировал три файла, следовательно, печать (файлы [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();

Ожидается, что он сможет открывать каждый файл в каталоге, так как он #retrieve правильное имя каждого файла, поскольку он проверяет все файлы в каталоге. (Не удается открыть второй файл) Вот некоторые ВЫХОДЫ

PSC: \ 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 001p02.txt 001p03.txt

001p01txt

закрыть fileRead

Не удалось открыть файл: 001p02.txt

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

1 Ответ

0 голосов
/ 23 мая 2019

Я понял это.Я пытался открыть / прочитать каждый файл, как если бы он находился в cwd, вместо того, чтобы делать os.path.join в моем операторе open.

fR = open (os.path.join (путь, имя файла), "r")

...