当前位置: 首页 > 面试题库 >

争论有问题

娄建义
2023-03-14
问题内容

我试图编写这个小脚本来批量重命名文件扩展名。我传递了三个参数,即文件所在的目录,当前扩展名和新扩展名。

我得到的错误是

python batch_file_rename_2.py c:\craig .txt .html
Traceback (most recent call last):
  File "batch_file_rename_2.py", line 13, in <module>
  os.rename(filename, newfile) 
WindowsError: [Error 2] The system cannot find the file specified

该代码是

import os
import sys

work_dir=sys.argv[1]
old_ext=sys.argv[2]
new_ext=sys.argv[3]

files = os.listdir(work_dir)
for filename in files:
    file_ext = os.path.splitext(filename)[1]
    if old_ext == file_ext:
        newfile = filename.replace(old_ext, new_ext)
        os.rename(filename, newfile)

问题答案:

os.listdir仅返回文件名,不返回完整路径。使用os.path.join重新创建正确的路径:

for filename in files:
    file_ext = os.path.splitext(filename)[1]
    if old_ext == file_ext:
        newfile = filename.replace(old_ext, new_ext)
        os.rename(
            os.path.join(work_dir, filename), 
            os.path.join(work_dir, newfile))


 类似资料:
  • 您可以通过在帮助程序名称后指定将多个参数传递给帮助程序。 语法 (Syntax) export default Ember.Helper.helper(function(params) { //code here } 例子 (Example) 下面给出的示例将多个参数传递给帮助程序。 创建一个新助手作为helperarguments并添加以下代码 - import Ember from '

  • 我有以下装饰示例: 我正在努力与行:即使在阅读了很多装饰教程 > 如果我将*和**留在中,我会得到错误:但是为什么wrapper\u function1知道的参数?我就是看不见他们被交到哪里去了。这样的事情对我来说是有意义的 def decorator_function1(原始_函数,*args,**kwargs)):my_args=args my_kwargs=kwargs def wrappe

  • 我正在使用junit运行一些单元测试。其中一个调用了一个对象中的方法,我使用mockito-like模拟该对象; 然后我设置mockito做一些类似的事情 现在myClass.foo实际上以我的另一个类(比如类Person)作为参数,我想做的是这样的事情 这当然是伪代码,但我希望它说明了我正在尝试做什么。这可能吗?

  • 进入上课页面,点击右侧“活动-问卷/讨论”。选择要发布的问卷/讨论,点击“发布”。

  • 本文向大家介绍Oracle关于重建索引争论的总结,包括了Oracle关于重建索引争论的总结的使用技巧和注意事项,需要的朋友参考一下 索引重建是一个争论不休被不断热烈讨论的议题。当然Oracle官方也有自己的观点,我们很多DBA也是遵循这一准则来重建索引,那就是Oracle建议对于索引深度超过4级以及已删除的索引条目至少占有现有索引条目总数的20% 这2种情形下需要重建索引。近来Oracle也提出了

  • 我一直在使用mvn sping-boot: run命令与-Dspring-boot.run.arguments传递参数/变量到我们的sping-boot应用程序,例如: 在应用程序中,我使用注释:@value(${jwt.skipValidation})读取参数值。这在spring boot 2.2.1中运行良好。 当我升级到spring boot 2.3.1时,它停止了工作。有什么建议吗?