我有一个创建文件的脚本,但我想查看该文件是否存在,以便将其移动到其他目录。我得到的问题是它在一个目录级别看起来太高了。
ex fileIn = a / b / c / d它在d中查找,而不是c
print directory + " go up one!!!"
os.path.dirname(os.path.dirname(directory)) # this specific line does nothing
if f.endswith("_edited.xml"):
print "true"
else:
print "false"
#shutil.copy2(f, aEdit)
答案 0 :(得分:5)
如果您使用os.getcwd()
,则可以查看您当前正在使用的目录。
您想使用os.chdir(PATH)
更改目录。
更改目录的方法是使用..
>>> print(os.getcwd())
C:\Python34
>>> os.chdir('..')
>>> print(os.getcwd())
C:\
答案 1 :(得分:2)
您可以使用os.path.isfile
检查文件是否存在。如果是这样,请继续升级目录结构,直到找到根目录,然后引发错误。一旦文件不存在于目录中,请将其复制到那里。
最后,将目录重置回其初始状态。
import os
cd = os.getcwd()
while os.path.isfile(filename):
os.chdir('..') # go one level up.
if len(os.getcwd) == 1:
raise ValueError('Root recursion reached.')
# Save file.
shutil.copy2(filename, os.getcwd())
# Reset directory.
os.chdir(cd)
答案 2 :(得分:1)
os.path.dirname(os.path.dirname(directory)) # this specific line does nothing
该行似乎“无所事事”,因为您没有将结果存储在任何地方。我不确定你的代码应该做什么(我没有很好地理解你的问题),所以我无法建议解决方案,但我想这是你的问题。