Я просто пытаюсь скопировать файлы с уникальным именем группы после второго _. Всего таких групп три. Я пытаюсь разделить их на 3 разные папки. У меня были проблемы с shutil.copy. Python версии 3.
КОД:
#
import os, os.path, shutil
folder_path = 'nodelists'
all_cells = [f for f in os.listdir(folder_path) if
os.path.isfile(os.path.join(folder_path, f))]
print("Length of all cells:",len(all_cells))
count=0
for cell in all_cells:
folder_name = cell.split('_')[2]
new_path = folder_name+"_nodelists"
if not os.path.exists(new_path):
os.mkdir(new_path)
old_cell_path = os.path.join(folder_path, cell)
shutil.copy(old_cell_path,new_path)
count+=1
if count % 500 == 0:
print ("Progress:",count, " done")
print("cell id is", str(cell))
### ВЫХОД:
Length of all cells: 15533
Progress: 500 done
cell id is AAGCGTTCAACTAGAA-1_nodelist_old_.csv
Progress: 1000 done
...
DISPLAYS RESULTS CORRECTLY! I am even able to open and check these files.##
...
Progress: 9500 done
cell id is GGGACCTAGCGACTAG-1_nodelist_postnatal_.csv
---------------------------------------------------------------------------
PermissionError Traceback (most recent call last)
<ipython-input-2-90d1a4cf5db0> in <module>()
20 #new_cell_path = os.path.join(new_path, cell)
21 #shutil.copy(old_cell_path, new_cell_path)
---> 22 shutil.copy(old_cell_path,new_path)
23
24 count+=1
~\AppData\Local\Continuum\anaconda3\lib\shutil.py in copy(src, dst, follow_symlinks)
239 if os.path.isdir(dst):
240 dst = os.path.join(dst, os.path.basename(src))
--> 241 copyfile(src, dst, follow_symlinks=follow_symlinks)
242 copymode(src, dst, follow_symlinks=follow_symlinks)
243 return dst
~\AppData\Local\Continuum\anaconda3\lib\shutil.py in copyfile(src, dst, follow_symlinks)
120 with open(src, 'rb') as fsrc:
121 with open(dst, 'wb') as fdst:
--> 122 copyfileobj(fsrc, fdst)
123 return dst
124
~\AppData\Local\Continuum\anaconda3\lib\shutil.py in copyfileobj(fsrc, fdst, length)
77 """copy data from file-like object fsrc to file-like object fdst"""
78 while 1:
---> 79 buf = fsrc.read(length)
80 if not buf:
81 break
PermissionError: [Errno 13] Permission denied
#
Я попытался дать разрешение Jupyter с помощью «Запуск от имени администратора». Это все еще не проходило. Я использую Windows 10 и не смог найти вкладку безопасности для своих папок. Все эти папки находятся в моей папке синхронизации BOX.
Любая помощь очень ценится!
РЕДАКТИРОВАТЬ: После того, как я попробовал: попробуйте / за исключением PermissionError, я теперь получаю:
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-8-909c0ceea90a> in <module>()
19
20 try:
---> 21 shutil.copy(old_cell_path,new_path)
22
23 except PermissionError as error:
~\AppData\Local\Continuum\anaconda3\lib\shutil.py in copy(src, dst, follow_symlinks)
239 if os.path.isdir(dst):
240 dst = os.path.join(dst, os.path.basename(src))
--> 241 copyfile(src, dst, follow_symlinks=follow_symlinks)
242 copymode(src, dst, follow_symlinks=follow_symlinks)
243 return dst
~\AppData\Local\Continuum\anaconda3\lib\shutil.py in copyfile(src, dst, follow_symlinks)
120 with open(src, 'rb') as fsrc:
121 with open(dst, 'wb') as fdst:
--> 122 copyfileobj(fsrc, fdst)
123 return dst
124
~\AppData\Local\Continuum\anaconda3\lib\shutil.py in copyfileobj(fsrc, fdst, length)
77 """copy data from file-like object fsrc to file-like object fdst"""
78 while 1:
---> 79 buf = fsrc.read(length)
80 if not buf:
81 break
OSError: [Errno 22] Invalid argument
Может кто-нибудь помочь отладить? Спасибо!