【发布时间】:2011-11-21 04:27:54
【问题描述】:
我只是想写一个小应用程序,它从名为“DATA.DAT”的文件中获取一个值,并用该值重命名包含该文件的文件夹。
.py 脚本在另一个文件夹中运行,并允许用户定义路径。为了让您更好地了解,用户定义的路径必须类似于(在 Mac 上)“/Users/User/Desktop/FOLDER”,并且“FOLDER”应包含“DATA.DAT”。
这就是一小部分源代码的样子:
try:
data = open('DATA.DAT').read()
data_data = data[12:17]
path_paths = path.rsplit('/')
basepath = '/'.join(path_paths[:-1])
chdir(basepath)
if path_paths[-1] <> data_data:
rename(path_paths[-1], data_data)
raw_input('Folder name has been corrected! Thank you.')
quit()
else:
print('Folder name was already correct! Thank you.')
quit()
except IndexError:
raw_input('ERROR!')
quit()
嗯,它有效;但是当 'FOLDER' 包含多个文件时,它会引发异常(实际上,'FOLDER' 应该只包含 'DATA.DAT' 和其他文件夹。这不会产生问题。)...
Traceback (most recent call last):
File "/Users/User/Desktop/example.py", line 72, in <module>
rename(path_paths[-1], data_data)
OSError: [Errno 66] Directory not empty
为了防止这种情况发生,有没有办法解决它?谢谢。
【问题讨论】:
-
chdir() 在重命名之前退出目录会发生什么?这是什么平台?
标签: python file exception directory rename