我有多个文件,其第一列包含标识符"COM1-11“、"COM1-12”、"COM1-13“、"COM1-14”、“Com1-15”和"COM1-16“--文件名没有标识符-
文件的第一列如下所示:
“设备名称:ABC(Com1-11)设备类型:ABC.日期:2020-07-14 10:46:59”
然后,我想以"COM1-11“部分作为标识符,并将文件移动到相应的文件夹"11”、"12“、"13”、"14“、"15”和"16“文件夹中。
到目前为止,我所达到的目标是:
import codecs
import pandas as pd
import shutil
import os
Raw_data_folder = r'C:\Users\Downloads\move_file_test'
files=os.listdir(Raw_data_folder)
Folder_11=r"C:\Users\Downloads\wished_dest\11"
Folder_12=r"C:\Users\Downloads\wished_dest\12"
Folder_13=r"C:\Users\Downloads\wished_dest\13"
Folder_14=r"C:\Users\Downloads\wished_dest\14"
Folder_15=r"C:\Users\Downloads\wished_dest\15"
Folder_16=r"C:\Users\Downloads\wished_dest\16"然后,
for f in files:
doc=codecs.open(os.path.join(Raw_data_folder,f),'rU','UTF-16')
identifier_1 = pd.read_csv(doc, sep='\t',nrows=0)
identifier_2 = identifier_1 .columns.str[21:28]
Folder_identifier=identifier_2 [0]
if Folder_identifier=="COM1-11":
shutil.move(os.path.join(Raw_data_folder,f),Folder_11)
elif Folder_identifier=="COM1-12":
shutil.move(os.path.join(Raw_data_folder,f),Folder_12)
elif Folder_identifier=="COM1-13":
shutil.move(os.path.join(Raw_data_folder,f),Folder_13)
elif Folder_identifier=="COM1-14":
shutil.move(os.path.join(Raw_data_folder,f),Folder_14)
elif Folder_identifier=="COM1-15":
shutil.move(os.path.join(Raw_data_folder,f),Folder_15)
else:
shutil.move(os.path.join(Raw_data_folder,f),Folder_16)当我运行它时,它只将第一个文件移动到相应的文件夹中--第一个文件具有"COM-11“,然后移动到"11”文件夹。然后,留下以下错误消息:
PermissionError: [WinError 32] The process cannot access the file
because it is being used by another process:
'C:\\Users\\Downloads\\move_file_test\\Data_20200714_104659741.csv'整个文件肯定缺少for循环,但我还没有通过。
发布于 2020-07-27 18:46:57
尝试在for循环:doc.close()中if- the语句之前关闭该文件。
for f in files:
doc=codecs.open(os.path.join(Raw_data_folder,f),'rU','UTF-16')
identifier_1 = pd.read_csv(doc, sep='\t',nrows=0)
identifier_2 = identifier_1 .columns.str[21:28]
Folder_identifier=identifier_2 [0]
# Close the file
doc.close()
if Folder_identifier=="COM1-11":
shutil.move(os.path.join(Raw_data_folder,f),Folder_11)
# ...https://stackoverflow.com/questions/63093696
复制相似问题