【问题标题】:Find the file name using python使用python查找文件名
【发布时间】:2019-04-20 17:47:17
【问题描述】:

我在 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

我能够很好地阅读它,但无法存储在 pandas 数据框或列表或字典中。

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 文件结果进行比较。

【问题讨论】:

  • 寻找split()

标签: python string pandas filenames


【解决方案1】:

使用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)

编辑

详细说明给出的答案,应用于字符串的split() 方法将其拆分为\\,考虑以下示例:

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

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

它给出了输出:

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

[-1] 索引抓取其中的最后一个元素,因此:

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

愿意:

hhhhhhhhhh8db

【讨论】:

  • 我不确定 -1 的用法。请分享更多想法。
  • @user3256224 split() 函数基本上通过 \\ 拆分字符串并创建它的列表。 [-1] 抓取列表中的最后一个元素,即hhhhhhhhhh8db
  • @user3256224 也添加了带有解释的编辑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-31
  • 2018-02-07
相关资源
最近更新 更多