编译cod时,进程会自动删除原始文件

2024-05-13 19:36:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了一个代码,将dicom(.dcm)数据转换成csv文件。但是,如果在数据库目录中多次运行该代码,数据将自动丢失/删除。我尝试在“回收站”中搜索,但找不到已删除的数据。我不知道数据出错的过程。你知道吗

我的代码有什么问题吗?如有任何建议,我们将不胜感激。你知道吗

这是我的密码:

import xlsxwriter
import os.path
import sys
import dicom
import xlrd
import csv


root = input("Enter Directory Name: ")
#path = os.path.join(root, "targetdirectory")
i=1

for path, subdirs, files in os.walk(root):
    for name in files:

        os.rename(os.path.join(path, name), os.path.join(path,'MR000'+ str(i)+'.dcm'))
        i=i+1


dcm_files = []
for path, dirs, files in os.walk(root):
    for names in files:
        if names.endswith(".dcm"):
            dcm_files.append(os.path.join(path, names))

print (dcm_files)

with open('junk/test_0.csv', 'w', newline='') as csvfile:
        spamwriter = csv.writer(csvfile, delimiter=',',
                                quotechar='|',
                                quoting=csv.QUOTE_MINIMAL)

        spamwriter.writerow(["Folder Name","File Name", "PatientName",
                             "PatientID", "PatientBirthDate","SliceThickness","Rows"])

        for dcm_file in dcm_files:
            ds = dicom.read_file(dcm_file)
            fileName = dcm_file.split("/")
            spamwriter.writerow([fileName[1],fileName[2], 
                                 ds.get("PatientName", "None"), 
                                 ds.get("PatientID", "None"), 
                                 ds.get("PatientBirthDate", "None"), 
                                 ds.get("SliceThickness", "None"),
                                 ds.get("Rows", "None")])

Tags: csv数据pathinimportnoneforget
1条回答
网友
1楼 · 发布于 2024-05-13 19:36:21

您有如下场景:

在第一次迭代之后,以以下文件结束:MR0001.dcmMR0002.dcmMR0003.dcm。。。在第2次迭代中,有以下更改:

os.rename('some_file',  'MR0001.dcm')
os.rename('MR0001.dcm', 'MR0002.dcm')
os.rename('MR0002.dcm', 'MR0003.dcm')
os.rename('MR0003.dcm', 'MR0004.dcm')
...

所以最后只有一个文件“MR0004.dcm”。你知道吗

在重命名下方添加以下行:

print( os.path.join(path, name), ' >', os.path.join(path,'MR000'+ str(i)+'.dcm'))

然后您将看到,文件重命名的确切内容。你知道吗

相关问题 更多 >