Найти имя файла с помощью Python - PullRequest
2 голосов
/ 20 апреля 2019

У меня есть файл со следующим форматом в файле filename.txt.

h:\abc\abc_Foldhr_1\hhhhhhhhhh8db

h:\abc\abc_Foldhr_1\hhhhhhhhhh8dc

h:\abc\abc_Foldhr_1\hhhhhhhhhh8dx

h:\abc\abc_Foldhr_1\hhhhhhhhhh8du

h:\abc\abc_Foldhr_1\hhhhhhhhhh8d4

h:\abc\abc_Foldhr_1\hhhhhhhhhh8d5

h:\abc\abc_Foldhr_1\hhhhhhhhhh8d6

h:\abc\abc_Foldhr_1\hhhhhhhhhh8d7

h:\abc\abc_Foldhr_1\hhhhhhhhhh8d8

Мне удалось прочитать его хорошо, но я не смог сохранить его во фрейме данных панды, списке или словаре.

import pandas as pd

#data = pd.read_excel ('/home/home/Documents/pythontestfiles/HON-Lib.xlsx')
data = pd.read_table('/home/home/Documents/pythontestfiles/filename.txt', delim_whitespace=True, names=('A'))
df = pd.DataFrame(data, columns= ['A'])
print(df)

и хотел бы перечислить имя файла только как

hhhhhhhhhh8db

.

.

.

hhhhhhhhhh8d6

hhhhhhhhhh8d7

hhhhhhhhhh8d8

Целью хранения в любом фрейме данных или словаре является сравнение с результатом файла Excel.

1 Ответ

2 голосов
/ 20 апреля 2019

Использование split():

res = []
with open('filename.txt', 'r') as file:
      content = file.readlines()
      for line in content:
            # print(line.split('\\')[-1])    # to print each name
            res.append(line.split('\\')[-1]) # append the name to the list
print(res)

EDIT

Развивая полученный ответ, метод split(), применяемый к строке, разбивает ее на \\. Рассмотрим следующий пример:

s = 'h:\abc\abc_Foldhr_1\hhhhhhhhhh8db'

print(s.split('\\'))  

Что дает вывод:

['h:\x07bc\x07bc_Foldhr_1', 'hhhhhhhhhh8db']

Индекс [-1] захватывает последний элемент в нем, следовательно:

print(s.split('\\')[-1]) 

даст:

hhhhhhhhhh8db
...