我有很多“文件”类型的文件。我想将它们转换为“文本”文件。
文件截图如下:
我想将这些文件转换为“文本”文件。我的代码如下:
os.chdir('FolderName/')
extension = 'txt'
raw_filenames = [i for i in glob.glob('*')] ### len(all_filenames1)
text_filenames = ['%s'%(i).format(extension) for i in raw_filenames]
print(len(text_filenames))
print(type(raw_filenames[0]))
print(type(text_filenames[0]))
输出:
108
<class 'str'>
<class 'str'>
以上代码正在成功运行,但未将文件转换为.txt
格式。
我正在尝试做两件事:
txt
格式和答案 0 :(得分:1)
我认为重命名是可行的。检查以下代码
import os
import glob
os.chdir('FolderName/')
extension = 'txt'
raw_filenames = [i for i in glob.glob('*')] ### len(all_filenames1)
text_filenames = ['%s'%(i).format(extension) for i in raw_filenames]
print(len(text_filenames))
print(type(raw_filenames[0]))
print(type(text_filenames[0]))
for in, out in zip(raw_filename, text_filenames)
os.rename(in, out)
答案 1 :(得分:0)
下面是一个使用pathlib和os.rename组合递归重命名文件的小例子:
from pathlib import Path
import os
import sys
basedir = Path("FolderName").resolve(strict=True)
print(f"Renaming files in {basedir}")
prefix = "\\\\?\\" if sys.platform == "win32" else ""
for src in basedir.glob("**/*"):
if src.is_dir():
continue
dst = src.with_suffix('.txt')
if not dst.exists():
try:
os.rename(f"{prefix}{src}", f"{prefix}{dst}")
print(f"Renamed {src}")
except Exception as e:
print(f"Error renaming: {e}")
在Windows上,如果dst存在,则始终引发FileExistsError,这就是为什么您应该检查dst是否已经存在的原因。另外,由于某些路径的os.rename太长可能会引发[WinError 3]
异常,因此可能会发生,这就是为什么使用前缀“ \?\”的原因。
有关[WinError 3]
的更多信息,您可以在https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file#maximum-path-length-limitation此处查看文档