我有一个txt文件,其中每行我都有文件和文件夹的路径,我想分隔到一个地方。
列表在我的list.txt文件中是这样的。 每个条目都从一个新行开始。
C:\xxx\xxy
C:\abc\def\ghi.pdf
我的目标文件夹是c:\ users \ mr_a \ dest
我想:
1。将目录xxy
及其所有文件和子文件夹移至dest
2。将ghi.pdf
文件移至dest
。
对list.txt
文件中的其他条目执行相同操作。
这样我的dest
目录就像:
dest\xxy
dest\ghi.pdf
我调查了shutil
,但我还不确定要使用哪种功能。
它说destination
目录不应该已经存在,但在我的情况下并非如此。我对使用哪种方法感到困惑。
还请提一下你提到的方法是否安全(我不想要任何令人讨厌的剪切粘贴,我的文件可能会丢失等等)
我要问的是:用什么方法来完成我需要做的事情?
编辑:我使用Windows,而不是Linux或任何Unix系统
答案 0 :(得分:0)
with open('list.txt') as f:
for line in f:
shutil.move(line, dest)
答案 1 :(得分:0)
结帐os
和os.path
。你会发现一些有用的功能,如:
os.path.exists
- 检查路径是否存在(如目标路径)os.makedirs
- 创建一个目录(包括缺少的父目录)os.path.isdir
,os.path.isfile
- 检查路径是否包含目录或文件。os.path.basename
- 从路径中删除文件名os.path.join
- 加入路径(或带文件名的路径)这是一个代码示例,我没有尝试过:
if not os.path.exists(dest):
os.makedirs(dest)
with open('list.txt', 'r') as f:
for line in f.readlines():
filepath = line.strip()
filename = os.path.basename(filepath)
shutil.move(filepath, os.path.join(dest, filename))