如何使用Python重命名现有列表中的已删除文件

MSD

我正在从网站上抓取文件,并希望根据计算机上现有的目录名称(或更简单的是,包含这些目录名称的列表)重命名这些文件。这是为了保持一致的命名约定。

例如,我已经有名为:

Barone Capital Management, Gabagool Alternative Investments, Aprile Asset Management, Webistics Investments

抓取的数据由一些完全匹配,一些“模糊”匹配以及一些新值组成:

Barone, Gabagool LLC, Aprile Asset Management, New Name, Webistics Investments

我希望抓取的文件采用现有目录的命名约定。例如,Barone将变为Barone Capital ManagementGabagool LLC并将其重命名Gabagool Alternative Investments

那么,实现此目标的最佳方法是什么?我查看了Fuzzywuzzy和其他一些库,但不确定正确的路径是什么。

这是我现有的代码,仅基于锚点来命名文件:

import praw
import requests
from bs4 import BeautifulSoup
import urllib.request

url = 'https://old.reddit.com/r/test/comments/b71ug1/testpostr23432432/'
headers = {'User-Agent': 'Mozilla/5.0'}
page = requests.get(url, headers=headers)

soup = BeautifulSoup(page.text, 'html.parser')
table = soup.find_all('table')[0]

#letter_urls = []
for anchor in table.findAll('a'):
    try:
        if not anchor:
            continue
        fund_name = anchor.text
        letter_link = anchor['href']
        urllib.request.urlretrieve(letter_link, '2018 Q4 ' + fund_name + '.pdf')
    except:
        pass

请注意,目录列表已经创建,看起来像这样:

 - /Users/user/Dropbox/Letters/Barone Capital Management
 - /Users/user/Dropbox/Letters/Aprile Asset Management
 - /Users/user/Dropbox/Letters/Webistics Investments
 - /Users/user/Dropbox/Letters/Gabagool Alternative Investments
 - /Users/user/Dropbox/Letters/Ro Capital
 - /Users/user/Dropbox/Letters/Vitoon Capital
K先生

就像在Python中一样:从列表中找到最接近另一个字符串的字符串

您可以使用difflib.get_close_matches(https://docs.python.org/3/library/difflib.html#difflib.get_close_matches)在列表中查找最相似的字符串。您的列表将是您已经拥有的绝对路径的文件夹:

import difflib
best_options = get_close_matches(fund_name, candidates, n=1)

if best_options:
    directory = best_options[0]
else:
    directory = 'New Name'

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何检查目录中现有的同名文件并使用python重命名新文件以保存?

如何在 VB Script 中重命名现有文件?

如何使用文件名中的现有Unix时间重命名多个文件?

如何使用现有名称的一部分重命名Python中的多个文件?

从列表中重命名文件但删除使用过的行?

如何重命名文件而不覆盖现有文件?

使用Python重命名目录中的所有文件

如何使用 Python 复制和重命名目录中的所有文件?

通过使用 bash 脚本删除现有文件名的一部分来重命名文件

如何重命名 CKEditor 中的现有样式?

如何使用Python重命名文件

如何使用python重命名多个文件?

如何查找在Java中已移动/重命名的文件

覆盖现有文件并重命名

重命名现有文件名

使用列表重命名文件

提取目录中的文件夹名称列表后,如何使用Python以其他格式重命名它们?

为什么使用Python重命名gzip文件没有在Windows中重命名实际文件?

如何使用FileZilla在Ubuntu Server中编辑/添加/删除/重命名文件/文件夹?

使用 R 中没有“.csv”的文件名重命名列表中的名称

如何使用linux shell重命名文件以删除“”字符

使用PowerShell重命名或删除文件名中的字符

如何使用remove()重命名和删除C ++中的txt文件以更新内容?

使用python重命名目录中的所有文件以在每个文件中存在的行

在python中使用文本输入重命名文件列表?

使用php重命名文件夹列表中的内容

批处理文件重命名–从列表中插入文本(使用Python或Java)

python重命名文件夹中的所有文件

在python中重命名文件