Python 如何从.txt文件中选择特定文件并创建文件夹
我有一个.txt文件,其中包含以下结构:Python 如何从.txt文件中选择特定文件并创建文件夹,python,directory,Python,Directory,我有一个.txt文件,其中包含以下结构: 2 PNEUMONIA/person888_bacteria_2812.jpeg 2 PNEUMONIA/person1209_bacteria_3161.jpeg 2 PNEUMONIA/person1718_bacteria_4540.jpeg 2 PNEUMONIA/person549_bacteria_2303.jpeg 2 PNEUMONIA/person831_bacteria_2742.jpeg 2 PNEUMONI
2 PNEUMONIA/person888_bacteria_2812.jpeg
2 PNEUMONIA/person1209_bacteria_3161.jpeg
2 PNEUMONIA/person1718_bacteria_4540.jpeg
2 PNEUMONIA/person549_bacteria_2303.jpeg
2 PNEUMONIA/person831_bacteria_2742.jpeg
2 PNEUMONIA/person1571_bacteria_4108.jpeg
1 COVID-19/4-x-day1.jpg
0 HEALTHY/IM-0486-0001.jpeg
此外,还有三个文件夹:
新冠病毒:包含带有冠状病毒的肺部图像
肺炎:包含肺炎肺部的图像
健康:包含具有健康肺部的图像
我需要创建一个包含此.txt文件中指定图像的文件夹。因此,我的问题是如何读取.txt文件并将图像从这些文件夹移动到新文件夹 要读取.txt文件: file=文件的打开路径,r表示读取 mylist=file.readlines每一行都是mylist的新元素 file.close别忘了关闭它 现在,如果您使用printmylist,您会得到:
["2 PNEUMONIA/person888_bacteria_2812.jpeg", "2 PNEUMONIA/person1209_bacteria_3161.jpeg", "2 PNEUMONIA/person1718_bacteria_4540.jpeg", "2 PNEUMONIA/person549_bacteria_2303.jpeg", "2 PNEUMONIA/person831_bacteria_2742.jpeg", "2 PNEUMONIA/person1571_bacteria_4108.jpeg", "1 COVID-19/4-x-day1.jpg", "0 HEALTHY/IM-0486-0001.jpeg"]
所以你可以用for循环遍历所有元素。。。那么如何创建文件夹和文件呢
要创建文件夹,请执行以下操作:
导入操作系统
dirName='您的路径'
尝试:
os.mkdirname
printDirectory,目录名,已创建
除文件ExistError外:
printDirectory,dirName,已存在
这将创建一个文件夹,但如果它已经存在,则不会创建
然后,移动文件:
导入shutil,os
对于mylist中的f:
shutil.movef,dirName
在先例代码中使用dirName。
因此,完整代码如下所示:
导入shutil,os
file=文件的打开路径,r
mylist=file.readlines
file.close
dirName='您的路径'
尝试:
os.mkdirname
printDirectory,目录名,已创建
对于mylist中的f:
shutil.movef,dirName
除文件ExistError外:
printDirectory,dirName,已存在
<>但是,如果我们考虑你的文件:
2 PNEUMONIA/person888_bacteria_2812.jpeg
2 PNEUMONIA/person1209_bacteria_3161.jpeg
2 PNEUMONIA/person1718_bacteria_4540.jpeg
2 PNEUMONIA/person549_bacteria_2303.jpeg
2 PNEUMONIA/person831_bacteria_2742.jpeg
2 PNEUMONIA/person1571_bacteria_4108.jpeg
1 COVID-19/4-x-day1.jpg
0 HEALTHY/IM-0486-0001.jpeg
也许文件名中不需要第一个字符,即那些数字?
然后只需搜索分割方法,并享受乐趣
关于移动文件的警告:
当我们这样做时:
对于mylist中的f:
shutil.movef,dirName
我们假设脚本与图片位于同一位置,因此它只使用f作为路径,这是好的。但如果它位于其他任何地方,您应该执行以下操作:
对于mylist中的f:
shutil.movepath\u到\u原始\u文件夹\u+\u和\u\\u在\u末端+f,dirName
例如:
对于mylist中的f:
shutil.moveC:\Covid\+f,目录名
就在那里 要读取.txt文件: file=文件的打开路径,r表示读取 mylist=file.readlines每一行都是mylist的新元素 file.close别忘了关闭它 现在,如果您使用printmylist,您会得到:
["2 PNEUMONIA/person888_bacteria_2812.jpeg", "2 PNEUMONIA/person1209_bacteria_3161.jpeg", "2 PNEUMONIA/person1718_bacteria_4540.jpeg", "2 PNEUMONIA/person549_bacteria_2303.jpeg", "2 PNEUMONIA/person831_bacteria_2742.jpeg", "2 PNEUMONIA/person1571_bacteria_4108.jpeg", "1 COVID-19/4-x-day1.jpg", "0 HEALTHY/IM-0486-0001.jpeg"]
所以你可以用for循环遍历所有元素。。。那么如何创建文件夹和文件呢
要创建文件夹,请执行以下操作:
导入操作系统
dirName='您的路径'
尝试:
os.mkdirname
printDirectory,目录名,已创建
除文件ExistError外:
printDirectory,dirName,已存在
这将创建一个文件夹,但如果它已经存在,则不会创建
然后,移动文件:
导入shutil,os
对于mylist中的f:
shutil.movef,dirName
在先例代码中使用dirName。
因此,完整代码如下所示:
导入shutil,os
file=文件的打开路径,r
mylist=file.readlines
file.close
dirName='您的路径'
尝试:
os.mkdirname
printDirectory,目录名,已创建
对于mylist中的f:
shutil.movef,dirName
除文件ExistError外:
printDirectory,dirName,已存在
<>但是,如果我们考虑你的文件:
2 PNEUMONIA/person888_bacteria_2812.jpeg
2 PNEUMONIA/person1209_bacteria_3161.jpeg
2 PNEUMONIA/person1718_bacteria_4540.jpeg
2 PNEUMONIA/person549_bacteria_2303.jpeg
2 PNEUMONIA/person831_bacteria_2742.jpeg
2 PNEUMONIA/person1571_bacteria_4108.jpeg
1 COVID-19/4-x-day1.jpg
0 HEALTHY/IM-0486-0001.jpeg
也许文件名中不需要第一个字符,即那些数字?
然后只需搜索分割方法,并享受乐趣
关于移动文件的警告:
当我们这样做时:
对于mylist中的f:
shutil.movef,dirName
我们假设脚本与图片位于同一位置,因此它只使用f作为路径,这是好的。但如果它位于其他任何地方,您应该执行以下操作:
对于mylist中的f:
shutil.movepath\u到\u原始\u文件夹\u+\u和\u\\u在\u末端+f,dirName
例如:
对于mylist中的f:
shutil.moveC:\Covid\+f,目录名
就在那里 使用以下代码:
import shutil
new_path = (r"C:\your\new\path")
file = open(r"C:\your\list\path\list.txt","r")
read_lines= file.readlines()
file.close()
for path in read_lines:
shutil.copy(path.replace("\n",""),new_path)
确保列表中的路径如下所示:
C:\like\this\path\filename.jpeg
C:\like\this\path\filename.jpeg
C:\like\this\path\filename.jpeg
C:\like\this\path\filename.jpeg
使用此代码:
import shutil
new_path = (r"C:\your\new\path")
file = open(r"C:\your\list\path\list.txt","r")
read_lines= file.readlines()
file.close()
for path in read_lines:
shutil.copy(path.replace("\n",""),new_path)
确保列表中的路径如下所示:
C:\like\this\path\filename.jpeg
C:\like\this\path\filename.jpeg
C:\like\this\path\filename.jpeg
C:\like\this\path\filename.jpeg
代码
代码