2017-02-23 31 views
1

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

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

любые идеи?

+0

- это файл, закодированный как hex? или хотите прочитать преобразование содержимого файла в hex? – putonspectacles

+0

см. Http://stackoverflow.com/questions/34687516/how-to-read-binary-files-as-hex-in-python – putonspectacles

ответ

1

Это будет работать для вас: -

from os import listdir 
from os.path import isfile, join 
onlyfiles = [f for f in listdir('folderPath') if isfile(join('folderPath', f))] 

for file in onlyfiles: 
    with open(join('folderPath', file), 'r') as f: 
     first_line = f.readline() 
     print first_line 
1

Сначала вы можете прочитать все файлы имя в каталоге

for filename in os.listdir(os.getcwd()): 

, а затем вы можете прочитать первую строку каждого файла

Вот полный код

import os 

def readFile(filename): 
    with open(filename) as f: 
     for line in f: 
      print line 
      break 

for filename in os.listdir(os.getcwd()): 
    readFile(filename) 
1

Ответ на pushpendra chauhan правильный, но почему мы должны использовать цикл for, когда это не обязательно (мы только зацикливаем каждый раз!)? (Я не могу комментировать, поскольку у меня недостаточно репутации).

Другое дело, это поднимет IOError, если у вас есть какие-либо подкаталоги на вашем пути. Поэтому я добавил строку, использующую os.path, чтобы увидеть, действительно ли текущий файл является файлом, прежде чем пытаться его открыть.

import os 

def read_first_line(filename): 
    with open(filename) as f: 
     print f.readline() 

for filename in os.listdir(os.getcwd()): 
    if os.path.isfile(filename): read_first_line(filename) 
Смежные вопросы