Python:将文件从一个目录复制到另一个读取图层列
问题描述:
我有一个带有两列的表,其中包含目录和/或文件的链接以及NULL 每个记录都有一个“NAME”列作为新目录的名称 类似于这Python:将文件从一个目录复制到另一个读取图层列
... NAME HOTLINK1 HOTLINK2
... name1 C:\...\directory1 C:\...\directory6\file
... name2 C:\...\directory2 NULL
... name3 C:\...\directory5\file C:\...\directory
... name4 NULL NULL
我试图写代码复制目录中的全部内容(包含子目录),并从HOTLINK1和HOTLINK2文件到新目录“NAME”。
所以:
如果HOTLINK是一个目录>>>复制目录中的全部内容(包含子目录)
如果盗链是一个文件>>>复制该文件
如果是NULL >>通过。
答
你已经有了一个非常清晰的人类语言方法,也许只需要一些提示就可以在Python代码中编写它们。
- 如何读取每行和链接列,通过换行符解析字符串和按空格拆分应该工作。
- 如何判断路径是文件还是目录(或至少存在)?尝试
os.path
模块。 - 如何复制文件或文件夹?尝试
shutil
模块。 - 注意Windows系统的文件路径中的反斜线,它需要被转义。
+0
人类的语言很清楚,但我是Pyhton初学者:-)。我尝试使用逻辑推理 。 –
答
import os
print(os.path.isdir("/home/el"))
结果真或假
print(os.path.exists("/home/el/myfile.txt"))
结果真或假
import shutil
shutil.copytree('hotlink1', 'hotlink2')
答
承蒙@Dev Jalla的建议,并@Neo X我写这篇文章的代码工作。 它使用了一列HOTLINK1的值。现在我不知道添加代码,以产生具有HOTLINK2值同样的事情,而文件夹的卡勒“NAME”已存在:
import shutil
import csv
import os
source='D:\\Prova_copy_pyhton\\'
with open('D:\\Prova_copy_pyhton\\list.csv') as csvfile:
reader = csv.DictReader(csvfile, delimiter=';')
for row in reader:
a = row['hotlink1']
fa= os.path.basename(a)
out = row['name']
if os.path.isdir(a):
shutil.copytree(a, os.path.join(source, out))
elif os.path.exists(a):
try:
os.stat(os.path.join(source, out))
except:
os.mkdir(os.path.join(source, out))
shutil.copy(a, source+out+'\\'+fa)
请尝试对这个问题的工作要求我们写代码,而不是为你。 –
对不起,你是对的。我改变了请求的类型。随着最后一个答案,我正在写一些代码。 –