标签: file-rename

如果已经存在该文件,则在覆盖时重命名文件名的Python程序

正如标题所说,我想要一个更改文件名的python程序,但是如果已经存在具有该目标名称的文件,我想覆盖.

import os, sys

original = sys.argv[1]
output = sys.argv[2]

os.rename(original, output)
Run Code Online (Sandbox Code Playgroud)

但是,当已经存在具有该目标名称的文件时,我的代码只显示了此错误.

  os.rename<original, output>
WindowsError: [Error 183] Cannot create a file when that file already exists
Run Code Online (Sandbox Code Playgroud)

我应该做什么修复?

python rename file-rename python-2.7

13
推荐指数
2
解决办法
2万
查看次数

更改多个文件Linux的名称

我在ubuntu机器上有许多名为a1.txt,b1.txt,c1,txt ...的文件.

有没有快速的方法将所有文件名更改为a2.txt,b2.txt,c2.txt ...?

特别是,我想替换部分名称字符串.例如,每个文件名都包含一个名为"apple"的字符串,我想在所有文件名中将"apple"替换为"pear".

任何命令或脚本?

linux file-rename

12
推荐指数
2
解决办法
2万
查看次数

Inno Setup在打包期间重命名文件

我试图找出如何在构建安装文件时重命名文件部分中的文件.我想包含一个Local.config文件,但将其解压缩为Local.config.tmp我无法弄清楚为什么Inno安装程序不断创建文件夹而不是重命名文件.到目前为止,我有这个,但它不断创建名为Api\Local.config.tmp的文件夹.

有任何想法吗?

[Files]
Source: "Api\Local.config"; DestDir: "{app}\Api\Local.config.tmp"; Flags: ignoreversion recursesubdirs
Run Code Online (Sandbox Code Playgroud)

inno-setup file-rename

12
推荐指数
1
解决办法
5632
查看次数

Delphi:重命名无效文件夹

我有一个创建无效目录的应用程序...例如c:\Program Files\somedirectory. - 句点是目录名称的一部分.

现在,我已经尝试了所有关于在delphi中重命名文件的知识.

  • RenameFile(文件1,文件2)
  • MoveFile(文件1,文件2)
  • 等等...

我试过让Windows短路径,ExtractShortPathName但这只是返回一个空字符串.(调用commandPrompt:"RENAME ShortOldName NewName")

现在我知道我可以在cmd中手动执行它,但我不打算花时间浏览所有文件并执行它;)

这是我的一些代码:

xshortname := ExtractFileName(ExtractShortPathName(ns + oldName));
  xNewName := newName;

  cmdTxt :=  PWideChar('/C cd ' + ns);
  cmdTxt2 := PWideChar(cmdTxt + '&&' + ' RENAME ' + xshortname + ' ' + #34 + xNewName + #34);
  ShellExecute(0, nil, 'cmd.exe', cmdTxt2, nil, SW_SHOWNORMAL);
Run Code Online (Sandbox Code Playgroud)

我知道shellExecute不是这里使用的最佳方法.我只是想让臭味发挥作用.我将担心以后优化和正确的Delphi编码.

所以我的问题是:有没有人知道一个允许我重命名无效目录的功能?

delphi directory file-rename

12
推荐指数
1
解决办法
1543
查看次数

在Python中重命名多个文件

如何重命名以下文件:

abc_2000.jpg
abc_2001.jpg
abc_2004.jpg
abc_2007.jpg
Run Code Online (Sandbox Code Playgroud)

进入以下几个:

year_2000.jpg
year_2001.jpg
year_2004.jpg
year_2007.jpg
Run Code Online (Sandbox Code Playgroud)

相关代码是:

import os
import glob
files = glob.glob('abc*.jpg')
for file in files:
    os.rename(file, '{}.txt'.format(???))
Run Code Online (Sandbox Code Playgroud)

python file-rename

12
推荐指数
1
解决办法
1万
查看次数

在java中重命名文件的最佳方法是,目录中大约有500个文件

我在目录中有500个pdf文件.我想删除文件名的前五个字符并重命名.

java file-rename

11
推荐指数
3
解决办法
7万
查看次数

为什么重命名文件有时会重构类名,有时不重构?

我发现很奇怪文件重命名有时会要求重构内部类,并且(大多数)有时只是重命名文件.

.net refactoring file-rename visual-studio-2010 visual-studio

11
推荐指数
3
解决办法
308
查看次数

用于从文件名中删除特殊字符的批处理文件脚本(Windows)

我有一大堆文件,其中一些文件包含特殊字符(例如ä,ö,%和其他).我想要一个脚本文件迭代这些文件并重命名它们删除特殊字符.我真的不介意它做什么,但它可以用下划线代替它们,例如

Störung%20.doc将重命名为St_rung_20.doc

按优先顺序排列:

  1. Windiws批处理文件
  2. 使用cscript(vbs)运行的Windows脚本文件
  3. 可以从命令行运行的第三方软件(即无需用户交互)
  4. 另一个语言脚本文件,我必须安装一个额外的脚本引擎

背景:我正在尝试使用Windows上的GnuPG加密这些文件,但它似乎没有使用--encrypt-files选项处理文件名中的特殊字符.

windows filenames gnupg batch-file file-rename

10
推荐指数
2
解决办法
8万
查看次数

Windows上的Git:重命名文件后无法切换分支(仅更改了大小写)

我在windows上使用git,我的repo中有一个文件,让我们说"foo.txt".今天我想把这个文件重命名为"Foo.txt"(大写).正如在这个SO问题中所建议的那样,我使用了git mv -f foo.txt Foo.txt它,产生了预期的结果.我继续提交更改我的回购协议.
编辑:我希望这是一个永久性的更改,仍然能够签署提前更改.

但是,之后我尝试切换分支时遇到错误:

# I'm on branch1  
git checkout branch2  
Aborting  
error: The following untracked working tree files would be overwritten by checkout:  
Foo.txt  
Please move or remove them before you can switch branches.  
Run Code Online (Sandbox Code Playgroud)

经过一番探索,我发现我的.git/config文件有以下设置:

[core]  
    ignorecase=false  
Run Code Online (Sandbox Code Playgroud)

将此更改为true似乎可以解决问题并允许我在正常情况下在分支之间进行更改.

关于这一点,我想知道:

  1. 这种设置有不良影响吗?在Windows上它应该是真的吗?如果我和其他开发人员合作并且他们没有相同的值设置怎么办?
  2. 有没有其他方法来重命名文件而不必更改此设置?
  3. 为什么这首先发生?当我提交更改时,git正确识别该文件实际上已重命名(未删除一个文件然后添加另一个文件).那么当我试图切换分支时究竟发生了什么?

谢谢!

git rename case-sensitive file-rename ignore-case

10
推荐指数
1
解决办法
2589
查看次数

使用wget覆盖文件但使用临时文件名直到收到完整文件,然后重命名

我在cron作业中使用wget每分钟将一个.jpg文件提取到一个Web服务器文件夹中(每次使用相同的文件名,覆盖).该文件夹是"实时"的,因为Web服务器也从那里提供该图像.但是,如果在获取图像的过程中有人浏览该页面,则会将其视为带有错误的jpg,并在浏览器中这样说.所以我需要做的是,类似于Firefox下载文件时,wget应该写入临时文件,在/ var或目标文件夹中但是使用临时名称,直到它具有整个内容,然后重命名为原子(或至少可忽略的持续时间)步骤.

我已经阅读了wget手册页,但似乎没有一个命令行选项.我错过了吗?或者我需要在我的cron作业中执行两个命令,一个wget和一个移动?

wget file-rename

9
推荐指数
1
解决办法
1085
查看次数