Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 4, 2018 11:49:49

fib11235
Зарегистрирован: 2018-09-04
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Заполнение массива

Здравствуйте, уважаемые!
Начну с далека!
Есть 2 папки с файлами расширение *.txt, экспериментальные данные. Средствами python копирую их и переименовую в 3-ю папку. Чтобы построить характеристику ток от времени мне необходимо извлечь дату редактирования файла и последнюю строку файла.
Я прогоняю файлы в цикле и извлекаю дату из файла но они, если я правильно понял, не записываются в массив. Подскажите как реализовать запись данных в массив по циклу.

 import os
import shutil
import os.path
import time
import numpy as np
 
path = raw_input("Enter path to folder: ")
path_1 = os.path.join(path, '1')
path_2 = os.path.join(path, '2')
listOfFiles = os.listdir(path)
countOfFiles = len(listOfFiles)
projectname = 'sens'
fullPath = os.path.join(path, projectname)
 
if os.path.exists(fullPath):
    print ('Объект найден "sens"')
else:
    os.mkdir(fullPath)
    print ('Объект создан "sens"')
 
os.chdir(path)    
    
filePath_1 = os.listdir(path_1)   # список файлов и поддиректорий в данной директории
filePath_2 = os.listdir(path_2)   # список файлов и поддиректорий в данной директории
for i in filePath_1:
    old_name_path_1 = os.path.join(fullPath, i)
    old_name_1 = os.path.join(path_1, i)
    shutil.copy2(old_name_1, old_name_path_1)
    file_name_1, file_ext_1 = os.path.splitext(i)
    count_1 = '_1'
    new_name_1 = '{}{}{}'.format(file_name_1, count_1, file_ext_1)
    new_name_path_1 = os.path.join(fullPath, new_name_1)
    os.rename(old_name_path_1, new_name_path_1)
    
    
for f in filePath_2:
    
    old_name_path_2 = os.path.join(fullPath, f)
    old_name_2 = os.path.join(path_2, f)
    shutil.copy2(old_name_2, old_name_path_2)
    file_name_2, file_ext_2 = os.path.splitext(f)
    count_2 = '_2'
    new_name_2 = '{}{}{}'.format(file_name_2, count_2, file_ext_2)
    new_name_path_2 = os.path.join(fullPath, new_name_2)
    os.rename(old_name_path_2, new_name_path_2) 
    
print('Объекты переименованы')
    
filePath_all_file = os.listdir(fullPath)
array_time = []
full_array_time = []
time_sec_change = []
 
for n in filePath_all_file:
    new_name_path_2 = os.path.join(fullPath, n)
    get_time = os.path.getmtime(new_name_path_2)
    full_array_time.append([])
    full_array_time[n].append('get_time')
    
    #full_array_time = array_time.append(get_time)
    #time_change = time.ctime(get_time)
    #time_sec_change = get_time(n + 1) - get_time(n)
        #for h in get_time:
     #time_sec_change[] = get_time(n + 1) - get_time(n)
     #   print(time_sec_change) 
    #array_time_sec = array_time.append[get_time]
            #print(h)
    #print(array_time_sec)
    #print(get_time)   
    
print(type(get_time))

Так же буду благодарен за подсказки по исправлению кода и подсказок по “хорошему тону” в python

Офлайн

#2 Сен. 4, 2018 12:26:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Заполнение массива

fib11235
Так же буду благодарен за подсказки по исправлению кода
Структурное программирование тут надо применять.
wiki. метод сверху вниз

Тут описывал этапы проектирования алгоритма ещё до написания кода.
Тут пример приводил пошаговой разработки по методу сверху вниз.


По состоянию твоего кода:
Видишь, сколько у тебя имён задействовано, из-за этого ты и потерялся в собственном коде и уже точно не знаешь, где и что в нём. Как бы ты подробно их не писал, всё равно это не помогает понимать код. Чтобы такого не было, у тебя должен быть алгоритм из определённых шагов, где на каждом шаге видно его начало и его конец. Когда у тебя алгоритм разбит на шаги, тогда можно начать их изолировать друг от друга (прятать внутри подпрограмм).

Смотри псевдокод для твоей программы
ввести путь
отыскать файлы по введённому пути
обработать найденные файлы
сохранить результаты обработки файлов
При этом не надо ни в какие директории переходить. Работать с файлами нужно так, будто ты находишься в любом месте на диске. Каждый шаг алгоритма вообще не должен знать про предыдущий шаг алгоритма и про следующий шаг алгоритма. Все шаги должны быть изолированы друг от друга и принимать данные по простейшим каналам и выдавать данные в простейшие каналы. В частности процедура поиска файлов в указанной директории не должна знать, откуда эта указанная директория была введена, с консоли или из файла или вообще из сокета.



Отредактировано py.user.next (Сен. 4, 2018 12:44:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version