gpt4 book ai didi

Python os.makedirs 重新创建路径

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:28 27 4
gpt4 key购买 nike

我想遍历现有路径和文件名的文本文件中的每一行,将字符串分为驱动器、路径和文件名。然后我想做的是将文件及其路径复制到新位置 - 不同的驱动器或 append 到现有文件树(即,如果 S:\A\B\C\D\E\F.shp是原始文件。我希望将其 append 到新位置,如 C:\users\visc\A\B\C\D\E\F.shp

由于我的编程技术不佳,我不断收到错误:

File "C:\Users\visc\a\b.py", line 28, in <module>
(destination) = os.makedirs( pathname, 0755 );

这是我的代码:

导入操作系统,系统,shutil

## Open the file with read only permit
f = open('C:/Users/visc/a/b/c.txt')

destination = ('C:/Users/visc')
# read line by line
for line in f:

line = line.replace("\\\\", "\\")
#split the drive and path using os.path.splitdrive
(drive, pathname) = os.path.splitdrive(line)
#split the path and fliename using os.path.split
(pathname, filename) = os.path.split(pathname)
#print the stripped line
print line.strip()
#print the drive, path, and filename info
print('Drive is %s Path is %s and file is %s' % (drive, pathname, filename))

(destination) = os.makedirs( pathname, 0755 );
print "Path is Created"

谢谢

最佳答案

您需要做的是在调用 makedirs() 之前检查文件夹是否存在,或者处理文件夹已经存在时发生的异常。在 Python 中,处理异常更为传统,因此请更改 makedirs() 行:

try:
(destination) = os.makedirs( pathname, 0755 )
except OSError:
print "Skipping creation of %s because it exists already."%pathname

在尝试创建文件夹之前检查文件夹的策略被称为“Look Before You Leap”或 LBYL;处理预期错误的策略是“请求宽恕比许可更容易”或 EAFP。 EAFP 的优势在于它可以正确处理在检查和 makedirs() 调用之间由另一个进程创建文件夹的情况。

关于Python os.makedirs 重新创建路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10539823/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com