当前位置:  开发笔记 > 编程语言 > 正文

更改文件夹中文件的文件扩展名?

如何解决《更改文件夹中文件的文件扩展名?》经验,为你挑选了3个好方法。

我想更改特定文件夹中的文件的扩展名.我在论坛上读到了这个主题.使用想法,我已经编写了以下代码,我希望它可以工作,但事实并非如此.我会感谢任何找到我的错误的指导.

   import os,sys
   folder = 'E:/.../1936342-G/test'
   for filename in os.listdir(folder):
           infilename = os.path.join(folder,filename)
           if not os.path.isfile(infilename): continue
           oldbase = os.path.splitext(filename)
           infile= open(infilename, 'r')
           newname = infilename.replace('.grf', '.las')
           output = os.rename(infilename, newname)
           outfile = open(output,'w')

chenaren.. 30

open对源文件是不必要的,因为os.rename只需要在源和目标路径来完成这项工作.而且,os.rename总是返回None,所以调用open它的返回值是没有意义的.

import os,sys
folder = 'E:/.../1936342-G/test'
for filename in os.listdir(folder):
       infilename = os.path.join(folder,filename)
       if not os.path.isfile(infilename): continue
       oldbase = os.path.splitext(filename)
       newname = infilename.replace('.grf', '.las')
       output = os.rename(infilename, newname)

我简单地删除了两个open.检查这是否适合您.



1> chenaren..:

open对源文件是不必要的,因为os.rename只需要在源和目标路径来完成这项工作.而且,os.rename总是返回None,所以调用open它的返回值是没有意义的.

import os,sys
folder = 'E:/.../1936342-G/test'
for filename in os.listdir(folder):
       infilename = os.path.join(folder,filename)
       if not os.path.isfile(infilename): continue
       oldbase = os.path.splitext(filename)
       newname = infilename.replace('.grf', '.las')
       output = os.rename(infilename, newname)

我简单地删除了两个open.检查这是否适合您.



2> elyase..:

您不需要打开文件来重命名它们,os.rename只需要它们的路径.还要考虑使用glob模块:

import glob, os

for filename in glob.iglob(os.path.join(folder, '*.grf')):
    os.rename(filename, filename[:-4] + '.las')



3> kelsmj..:

这样的东西会将执行目录中以.txt结尾的所有文件重命名为.text

import os, sys

for filename in os.listdir(os.path.dirname(os.path.abspath(__file__))):
  base_file, ext = os.path.splitext(filename)
  if ext == ".txt":
    os.rename(filename, base_file + ".text")

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有