Python: прочитайте строку и используйте ее для переименования файла - PullRequest
0 голосов
/ 06 сентября 2018

Я совершенно новичок в python и пытаюсь переименовать набор файлов, используя строку в определенной строке в файле, и использовать ее для переименования файла. Такая строка находится в одной строке в каждом файле.

Как пример:

  • 10 файлов по тому же пути
  • строка находится в строке № 14, начинается с символа № 40 и имеет длину 50 символов
  • Затем используйте извлеченную строку, чтобы переименовать соответствующий файл

Я пытаюсь использовать этот код, но не могу понять, как заставить его работать:

for filename in os.listdir(path):
  if filename.startswith("out"):
     with open(filename) as openfile:
        fourteenline = linecache.getline(path, 14)
           os.rename(filename, fourteenline.strip())

1 Ответ

0 голосов
/ 06 сентября 2018

Позаботьтесь о том, чтобы указать полный путь к файлу, если вы еще не работаете в этой папке (используйте os.path.join()). Кроме того, при использовании linecache вам не нужно open файл.

import os, linecache

for filename in os.listdir(path):
    if not filename.startswith("out"): continue # less deep
    file_path = os.path.join(path, filename) # folderpath + filename
    fourteenline = linecache.getline(file_path, 14) # maybe 13 for 0-based index?
    new_file_name = fourteenline[40:40+50].rstrip() # staring at 40 with length of 50
    os.rename(file_path, os.path.join(path, new_file_name))

полезных ресурсов:

...