我知道还有其他关于重命名的问题,我看了一堆,但我的代码没有工作。我也看过OS python的定义。
基本上我的代码将成为我将运行的GIS中较大脚本的一部分。我已经创建了一个名为permits.gdb的地理数据库并对数据运行所有必要的处理,然后我想用它上面的时间戳重命名它以备份。
我收到的错误是文件无法找到...我只是在C:\ test \ permits.gdb中创建它所以我知道它存在....我已经看过几个路径示例& #34;,',/和\,但似乎没有工作。路径甚至是问题吗?
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
答案 0 :(得分:0)
试试这个:
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)
我认为文件名不包含完整路径。
答案 1 :(得分:0)
只有第7,8行与Simon的代码不同。 我认为数据的完整路径是&#34; C:/test/date_test/permits.gdb",&#39; old_name&#39;在您的代码中是&#39; permits.gdb&#39;,在Simon的代码中是&#39; C:/test/permits.gdb',因此您应该将dir添加到&#39; old_name& #39;和&#39; new_name&#39;。
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)
答案 2 :(得分:0)
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!"