Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从.txt文件中选择特定文件并创建文件夹_Python_Directory - Fatal编程技术网

Python 如何从.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

我有一个.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   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
代码

代码