Datetime 脚本保留前缀内文件的简单重命名

Datetime 脚本保留前缀内文件的简单重命名,datetime,file-rename,arcpy,Datetime,File Rename,Arcpy,我知道关于重命名还有其他问题,我已经看了很多,但是我的代码不起作用。我还看到了OS python定义 基本上,我下面的代码将是我将运行的GIS中更大脚本的一部分。我已经创建了一个名为permissions.gdb的地理数据库,并对数据进行了所有必要的处理,然后我想用时间戳对其进行重命名,以便进行备份 我遇到了找不到文件的错误。。。我刚刚在C:\test\permissions.gdb中创建了它,所以我知道它存在。。。。我见过几个带“,”和“/”的路径示例,但似乎都不起作用。路径就是问题所在吗 i

我知道关于重命名还有其他问题,我已经看了很多,但是我的代码不起作用。我还看到了OS python定义

基本上,我下面的代码将是我将运行的GIS中更大脚本的一部分。我已经创建了一个名为permissions.gdb的地理数据库,并对数据进行了所有必要的处理,然后我想用时间戳对其进行重命名,以便进行备份

我遇到了找不到文件的错误。。。我刚刚在C:\test\permissions.gdb中创建了它,所以我知道它存在。。。。我见过几个带“,”和“/”的路径示例,但似乎都不起作用。路径就是问题所在吗

import time
import os

dir_path = os.path.normpath('C:/test')
dir = os.listdir(dir_path)
now = time.strftime('%H%M%A%d%m%Y')

for filename in dir:
    old_name = "permits.gdb"
    new_name = "BAQP_Permits_"+ now +".gdb"
    os.rename(old_name, new_name)
更新: 我非常感谢你们的帮助!我让它工作了,但它仍然会抛出一个错误,即它找不到指定的文件,即使它确实找到了并重命名了它。我现在还将它保存在我想要的位置,并将它与我的脚本的其余部分结合起来(因此文件路径现在不同)。以下是我的新代码:

dir_path = os.path.normpath('L:\GIS_Admin\SDE_Update_Backup\BAQP_Permits')
dir = os.listdir(dir_path)
now = time.strftime('%H%M%A%d%m%Y')

for filename in dir:
    old_name = dir_path + "\BAQP_Permits.gdb"
    new_name = dir_path + "\BAQP_Permits_"+ now +".gdb"
    os.rename(old_name, new_name)
我的错误是:

Traceback (most recent call last):
File "C:\NDEPGIS\Scripts\baqp_permits_aris_daily", line 28, in <module>
os.rename(old_name, new_name)
WindowsError: [Error 2] The system cannot find the file specified 
回溯(最近一次呼叫最后一次):
文件“C:\NDEPGIS\Scripts\baqp\u许可证\u aris\u daily”,第28行,在
重命名(旧名称、新名称)
WindowsError:[错误2]系统找不到指定的文件
试试这个:

import time
import os

dir_path = os.path.normpath('C:/test')
dir = os.listdir(dir_path)
now = time.strftime('%H%M%A%d%m%Y')

for filename in dir:
    old_name = dir_path + "/permits.gdb"
    new_name = dir_path + "/BAQP_Permits_"+ now +".gdb"
    print "filename", filename
    print "old:", old_name
    print "new:", new_name
    os.rename(old_name, new_name)

我不认为文件名包含完整路径。

只有第7、8行与Simon的代码不同。 我认为数据的完整路径是“C:/test/date\u test/permissions.gdb”,代码中的“old\u name”是“permissions.gdb”,Simon的代码中是“C:/test/permissions.gdb”,因此您应该将dir添加到“old\u name”和“new\u name”中

import time import os dir_path = os.path.normpath('C:/test') dir = os.listdir(dir_path) now = time.strftime('%H%M%A%d%m%Y') for filename in dir: old_name = dir_path + '/' + dir + "/permits.gdb" new_name = dir_path + '/' + dir + "/BAQP_Permits_"+ now +".gdb" print "filename", filename print "old:", old_name print "new:", new_name os.rename(old_name, new_name) 导入时间 导入操作系统 dir\u path=os.path.normpath('C:/test') dir=os.listdir(dir\u路径) now=time.strftime(“%H%M%A%d%M%Y”) 对于目录中的文件名: old_name=dir_path+'/'+dir+“/permissions.gdb” new_name=dir_path+'/'+dir+“/BAQP_允许现在“+now+.gdb” 打印“文件名”,文件名 打印“旧:”,旧名称 打印“新:”,新名称 重命名(旧名称、新名称)
Simon给了我所需的代码,但我有一个错误,我无法找到该文件,即使该文件已更改,并打印了两次我的结果。它是循环没有退出

dir_path = os.path.normpath('C:\NDEPGIS\Scripts\SDE_Update_Backup\BAQP_Permits')
dir = os.listdir(dir_path)
now = time.strftime('%H%M%A%d%m%Y')

for filename in dir:
    old_name = dir_path + "/BAQP_Permits.gdb"
    new_name = dir_path + "/BAQP_Permits_"+ now +".gdb"
    print "filename", filename
    print "old:", old_name
    print "new:", new_name
    os.rename(old_name, new_name)
    break
print "all done!"

我的错误:回溯(最后一次调用):文件“C:/test/date\u test”,第11行,在操作系统中。重命名(旧名称,新名称)窗口错误:[错误2]系统找不到指定的文件。是否尝试我的代码?使用print语句运行它。通过在控制台中粘贴路径来验证旧名称文件是否存在。确定您的代码中的文件名与我的不同,已修复该问题。它起到了作用,但我仍然收到一个错误,尽管它找到了文件并实际更改了文件…h打印内容如下:文件名BAQP_permissions.gdb old:C:\test\BAQP_permissions.gdb new:C:\test\BAQP_permissions_1031; uesday08042014.gdb文件名date_test old:C:\test\BAQP_permissions.gdb new:C:\test\BAQP_permissions__1031; 1031; uesday08042014.gdb回溯(最后一次调用):文件“C:/test/date_test3”,os.rename中的第14行(旧名称,新名称)WindowsError:[错误2]系统找不到指定的文件DI got:Traceback(最近一次调用last):文件“C:/test/date_test2”,第7行,在old_name=dir_path+'/'+dir+“/permissions.gdb”中。类型错误:无法将'str'和'list'对象连接起来,出现错误。请将'dir'替换为'filename'。'dir'是一个列表,而不是字符串。