在特定目录中创建文本文件中指定的 Folder/Subfolder/File
Creating Folder/Subfolder/File as specified in a text file, in a specific directory
我正在尝试创建一系列文件夹,其中包含子文件夹,子文件夹包含带有 python 的文件。
这些文件夹的名称来自一个文本文件,其中包含一个包含路径的列表,如下所示:
songs1_TNTOGCD1_2020_CONTENT_LOOP_TNTOGCD.mov
songs1_TNTOGCD1_TNTOGCD_CONTENT_TC_A+B_CBLDESIGN2.mov
子文件夹的数量并不总是相同的,有时可以是两个子文件夹和文件,有时只是一个文件夹和文件。
所有这些都必须在我选择的指定文件夹中创建。
这是我目前所做的:
import os
import shutil
import os.path
with open("C:\Users\Desktop\folder1\folder2\folder3\textfile.txt", "r") as g:
lines = g.readlines()
base_path = "C:\Users\Desktop\folder1\folder2\folder3"
mov_origin = "C:\Users\Desktop\folder1\folder2\folder3\folder4\file_000.mov"
for line in lines:
target = base_path
path = line.split("\")
for i in range(len(path) - 1):
target += path[i]
if not os.path.exists(target):
os.makedirs(target)
else:
pass
target += "\"
target += path[-1].replace("\n", "")
print(target)
shutil.copyfile(mov_origin, target)
但基本上,当我 运行 它时,什么也没有发生。
我没有收到任何错误,但没有创建任何内容。
我做错了什么?
在此先感谢您的帮助!
更新:由于我在 PyCharm 中的 Run/Debug 配置错误,代码无法正常工作。选择了错误的脚本路径。
我认为你需要给它一些东西来打开它。行
with open("C:\Users\xxxx\xxxx\xxxx\xxxx\xxxx.txt", "r") as g:
除非您有实际名为 XXXX 的文件夹,否则无法执行任何操作...等等。
当你有一个正确的文件路径时它会做什么?
当我尝试这样做时,它打印了该文本文件中的行。在您看到问题出在哪里之前,我会随意使用打印语句。
import os
import shutil
import os.path
#lines = []
with open("/Users/.../Desktop/OPW_DATA/comments.txt", "r") as g:
lines = g.readlines()
base_path = "/Users/.../Desktop/"
#mov_origin = "C:\Users\xxxx\xxxx\xxxx\xxxx\xxxx\file_000.mov"
for line in lines:
print('line:', line)
target = base_path
print('target:',target)
path = line.split("\")
for i in range(len(path) - 1):
target += path[i]
if not os.path.exists(target):
os.makedirs(target)
else:
pass
target += "\"
target += path[-1].replace("\n", "")
print(target)
#shutil.copyfile(mov_origin, target)
代码有效。问题的发生是因为我在 PyCharm 中的 Run/Debug 配置错误。选择了错误的脚本路径。
我正在尝试创建一系列文件夹,其中包含子文件夹,子文件夹包含带有 python 的文件。
这些文件夹的名称来自一个文本文件,其中包含一个包含路径的列表,如下所示:
songs1_TNTOGCD1_2020_CONTENT_LOOP_TNTOGCD.mov
songs1_TNTOGCD1_TNTOGCD_CONTENT_TC_A+B_CBLDESIGN2.mov
子文件夹的数量并不总是相同的,有时可以是两个子文件夹和文件,有时只是一个文件夹和文件。
所有这些都必须在我选择的指定文件夹中创建。
这是我目前所做的:
import os
import shutil
import os.path
with open("C:\Users\Desktop\folder1\folder2\folder3\textfile.txt", "r") as g:
lines = g.readlines()
base_path = "C:\Users\Desktop\folder1\folder2\folder3"
mov_origin = "C:\Users\Desktop\folder1\folder2\folder3\folder4\file_000.mov"
for line in lines:
target = base_path
path = line.split("\")
for i in range(len(path) - 1):
target += path[i]
if not os.path.exists(target):
os.makedirs(target)
else:
pass
target += "\"
target += path[-1].replace("\n", "")
print(target)
shutil.copyfile(mov_origin, target)
但基本上,当我 运行 它时,什么也没有发生。 我没有收到任何错误,但没有创建任何内容。 我做错了什么?
在此先感谢您的帮助!
更新:由于我在 PyCharm 中的 Run/Debug 配置错误,代码无法正常工作。选择了错误的脚本路径。
我认为你需要给它一些东西来打开它。行
with open("C:\Users\xxxx\xxxx\xxxx\xxxx\xxxx.txt", "r") as g:
除非您有实际名为 XXXX 的文件夹,否则无法执行任何操作...等等。 当你有一个正确的文件路径时它会做什么?
当我尝试这样做时,它打印了该文本文件中的行。在您看到问题出在哪里之前,我会随意使用打印语句。
import os
import shutil
import os.path
#lines = []
with open("/Users/.../Desktop/OPW_DATA/comments.txt", "r") as g:
lines = g.readlines()
base_path = "/Users/.../Desktop/"
#mov_origin = "C:\Users\xxxx\xxxx\xxxx\xxxx\xxxx\file_000.mov"
for line in lines:
print('line:', line)
target = base_path
print('target:',target)
path = line.split("\")
for i in range(len(path) - 1):
target += path[i]
if not os.path.exists(target):
os.makedirs(target)
else:
pass
target += "\"
target += path[-1].replace("\n", "")
print(target)
#shutil.copyfile(mov_origin, target)
代码有效。问题的发生是因为我在 PyCharm 中的 Run/Debug 配置错误。选择了错误的脚本路径。