gpt4 book ai didi

python - 有没有更 Pythonic 的方法来解决这个问题?

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

这是我的第一个 python 脚本,请注意。

我从 Dive Into Python 中将它拼凑在一起,效果很好。但是,由于这是我的第一个 Python 脚本,我将不胜感激有关如何改进它的任何提示或可以更好地采用 Python 编程方式的方法。

import os
import shutil

def getSourceDirectory():
"""Get the starting source path of folders/files to backup"""
return "/Users/robert/Music/iTunes/iTunes Media/"

def getDestinationDirectory():
"""Get the starting destination path for backup"""
return "/Users/robert/Desktop/Backup/"

def walkDirectory(source, destination):
"""Walk the path and iterate directories and files"""

sourceList = [os.path.normcase(f)
for f in os.listdir(source)]

destinationList = [os.path.normcase(f)
for f in os.listdir(destination)]

for f in sourceList:
sourceItem = os.path.join(source, f)
destinationItem = os.path.join(destination, f)

if os.path.isfile(sourceItem):
"""ignore system files"""
if f.startswith("."):
continue

if not f in destinationList:
"Copying file: " + f
shutil.copyfile(sourceItem, destinationItem)

elif os.path.isdir(sourceItem):
if not f in destinationList:
print "Creating dir: " + f
os.makedirs(destinationItem)

walkDirectory(sourceItem, destinationItem)

"""Make sure starting destination path exists"""
source = getSourceDirectory()
destination = getDestinationDirectory()

if not os.path.exists(destination):
os.makedirs(destination)

walkDirectory(source, destination)

最佳答案

正如其他人提到的,您可能想使用内置 os 模块中的 walk。另外,考虑使用 PEP 8 compatible style (没有驼峰式,而是 this_stye_of_function_naming())。将可执行代码(即没有库/模块)直接包装到 if __name__ == '__main__': ... block 中也是一种很好的做法。

关于python - 有没有更 Pythonic 的方法来解决这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951780/

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