python - 在创建备份时从 Python 中的多个文件中删除字符串
问题描述
我需要从 Python 中的多个 .txt 文件中删除字符串“HELLO”。在此之前,我想将所有这些文件复制到备份文件夹中。
我在 drc 文件夹中有我的文件,并创建了一个备份文件夹,但我的代码没有将副本保存到 Backup 文件夹,而是将它们保存到主 Project 文件夹。
drc = 'C:/Users/Bear/Desktop/Project/Files'
backup = 'C:/Users/Bear/Desktop/Project/Backup'
pattern = re.compile('HELLO')
oldstr = 'HELLO'
newstr = ''
for dirpath, dirname, filename in os.walk(drc):
for fname in filename:
path = os.path.join(dirpath, fname)
backup = './Backup'
strg = open(path).read()
if re.search(pattern, strg):
shutil.copy2(backup, fname)
strg = strg.replace(oldstr, newstr)
f = open(path, 'w')
f.write(strg)
f.close()
有时我得到 PermissionError: [Errno13] Permission denied: './Backup'。我认为我的问题是指定路径,我也希望我的路径是相对的,而不是绝对的,以便其他人可以复制这个项目。
解决方案
该backup
变量正在尝试写入 Python 工作目录的父级,而不是您在顶部指定的目录。
这条线backup = './Backup'
覆盖了这一点。从未使用最高定义。
您可以删除第二个定义,或使用dirname(path)
来确定父目录并从那里开始工作。
推荐阅读
- c# - Selecting all rows that match parts of a string
- reactjs - 在 React 中播放动画后移除组件
- css - 如何使用flexbox设置两个元素彼此相邻
- python - 如何在 gRPC python 中定义全局错误处理程序
- angular - 如何根据条件在 ng2-completer 中应用 css?
- ios - 如何在后台线程上截取 UIView 的屏幕截图?
- excel - Excel卡在IF AND OR
- sql - Redshift:在没有任何会话ID的情况下查找会话中的第一个和最后一个事件
- c++ - c++永久离线计数器
- javascript - Jquery - cookie 将过期日期设置为 1 天