Я начинаю работать в python и пытаюсь изменить время доступа() подкаталогов и файлов родительского каталога. Я обнаружил, что, как изменить время доступа файла здесь Implement touch using Python?Модифицировать время доступа ко всем файлам в каталоге с помощью python
import os def touch(fname, times=None): with open(fname, 'a'): os.utime(fname, times)
вместо fname
выше, я хочу иметь подкаталоги и файлы родительского каталога. Так что я нашел еще один вопрос пробегает по каталогам: Iterating through directories with Python
import os rootdir = 'C:/Users/sid/Desktop/test' for subdir, dirs, files in os.walk(rootdir): for file in files: print os.path.join(subdir, file)
Объединяя код из приведенных выше примеров, я создал код:
import os
rootdir = '/usr/sf/adir'
for subdir, dirs, files in os.walk(rootdir):
for file in files:
fname = os.path.join(subdir, file)
def touch(fname, times=None):
with open(fname, 'a'):
os.utime(fname, times)
код выполняется без ошибок, но когда я сделал ls -l
, Я не мог видеть изменение метки времени доступа. Где я иду не так? Является ли третий код правильным для touch
всех файлов и подкаталогов?
Я использую python 2.6.
Почему вы используете версию Python, которой исполнилось 9 лет? – dawg
Ваш метод touch определен, но не вызывается. Возможно, вы неправильно скопировали код в свой вопрос? – Irisshpunk