从文件夹内的文件名中删除某些字符串
Remove certain strings from filenames inside a folder
我有一个包含一堆文本文件的文件夹。
32167.pdf.txt
20988.pdf.txt
45678.pdf.txt
:
:
99999.pdf.txt
我想从该文件夹中的所有文件名中删除“.pdf”(如下所示)。
32167.txt
20988.txt
45678.txt
:
:
99999.txt
我尝试使用 os 来完成,但抛出一个错误 FileNotFoundError: [Errno 2] No such file or directory: '.txt' -> '.txt'
这是我的代码:
for filename in os.listdir('/Users/CodingStark/folder/'):
os.rename(filename, filename.replace('.pdf', ''))
我想知道除了使用 os 之外,还有其他方法可以实现此目的吗?或者 os 是最快的方法吗?谢谢!!
我想我知道出了什么问题。 filename
将只包含文件名,而不是完整路径。试试这个:
dir = '/Users/CodingStark/folder/'
for filename in os.listdir(dir):
os.rename(dir + filename, dir + filename.replace('.pdf', ''))
在处理路径时,你真的应该使用 pathlib
。它有大多数 os
功能的替代品,而且使用起来更有意义,而且绝对更便携。
手头任务:
from pathlib import Path
root = Path('/Users/CodingStark/folder/')
for path in root.glob("*.pdf.txt"):
path.rename(path.with_name(path.name.replace(".pdf", "")))
# or:
# path.with_suffix('').with_suffix(".txt")
# or:
# str(path).replace(".pdf", "")
我有一个包含一堆文本文件的文件夹。
32167.pdf.txt
20988.pdf.txt
45678.pdf.txt
:
:
99999.pdf.txt
我想从该文件夹中的所有文件名中删除“.pdf”(如下所示)。
32167.txt
20988.txt
45678.txt
:
:
99999.txt
我尝试使用 os 来完成,但抛出一个错误 FileNotFoundError: [Errno 2] No such file or directory: '.txt' -> '.txt'
这是我的代码:
for filename in os.listdir('/Users/CodingStark/folder/'):
os.rename(filename, filename.replace('.pdf', ''))
我想知道除了使用 os 之外,还有其他方法可以实现此目的吗?或者 os 是最快的方法吗?谢谢!!
我想我知道出了什么问题。 filename
将只包含文件名,而不是完整路径。试试这个:
dir = '/Users/CodingStark/folder/'
for filename in os.listdir(dir):
os.rename(dir + filename, dir + filename.replace('.pdf', ''))
在处理路径时,你真的应该使用 pathlib
。它有大多数 os
功能的替代品,而且使用起来更有意义,而且绝对更便携。
手头任务:
from pathlib import Path
root = Path('/Users/CodingStark/folder/')
for path in root.glob("*.pdf.txt"):
path.rename(path.with_name(path.name.replace(".pdf", "")))
# or:
# path.with_suffix('').with_suffix(".txt")
# or:
# str(path).replace(".pdf", "")