正如标题所说,我想要一个更改文件名的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)
我应该做什么修复?
我在ubuntu机器上有许多名为a1.txt,b1.txt,c1,txt ...的文件.
有没有快速的方法将所有文件名更改为a2.txt,b2.txt,c2.txt ...?
特别是,我想替换部分名称字符串.例如,每个文件名都包含一个名为"apple"的字符串,我想在所有文件名中将"apple"替换为"pear".
任何命令或脚本?
我试图找出如何在构建安装文件时重命名文件部分中的文件.我想包含一个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) 我有一个创建无效目录的应用程序...例如c:\Program Files\somedirectory. - 句点是目录名称的一部分.
现在,我已经尝试了所有关于在delphi中重命名文件的知识.
我试过让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编码.
所以我的问题是:有没有人知道一个允许我重命名无效目录的功能?
如何重命名以下文件:
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) 我在目录中有500个pdf文件.我想删除文件名的前五个字符并重命名.
我发现很奇怪文件重命名有时会要求重构内部类,并且(大多数)有时只是重命名文件.
.net refactoring file-rename visual-studio-2010 visual-studio
我有一大堆文件,其中一些文件包含特殊字符(例如ä,ö,%和其他).我想要一个脚本文件迭代这些文件并重命名它们删除特殊字符.我真的不介意它做什么,但它可以用下划线代替它们,例如
Störung%20.doc将重命名为St_rung_20.doc
按优先顺序排列:
背景:我正在尝试使用Windows上的GnuPG加密这些文件,但它似乎没有使用--encrypt-files选项处理文件名中的特殊字符.
我在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似乎可以解决问题并允许我在正常情况下在分支之间进行更改.
关于这一点,我想知道:
谢谢!
我在cron作业中使用wget每分钟将一个.jpg文件提取到一个Web服务器文件夹中(每次使用相同的文件名,覆盖).该文件夹是"实时"的,因为Web服务器也从那里提供该图像.但是,如果在获取图像的过程中有人浏览该页面,则会将其视为带有错误的jpg,并在浏览器中这样说.所以我需要做的是,类似于Firefox下载文件时,wget应该写入临时文件,在/ var或目标文件夹中但是使用临时名称,直到它具有整个内容,然后重命名为原子(或至少可忽略的持续时间)步骤.
我已经阅读了wget手册页,但似乎没有一个命令行选项.我错过了吗?或者我需要在我的cron作业中执行两个命令,一个wget和一个移动?
file-rename ×10
python ×2
rename ×2
.net ×1
batch-file ×1
delphi ×1
directory ×1
filenames ×1
git ×1
gnupg ×1
ignore-case ×1
inno-setup ×1
java ×1
linux ×1
python-2.7 ×1
refactoring ×1
wget ×1
windows ×1