打印存储在csv文件中的文件路径列表时,“ \\”变成“ \\\\”

时间:2019-06-15 03:25:14

标签: python csv

我想获取存储在csv文件中的img文件路径字典的列表,如下所示:   这是我在excel中输出的csv文件的图片: input

这是我的代码:

def read_cell(filelocation,column_name,row_index):
    with open(filelocation, 'r',encoding="utf8") as f:
        reader = csv.DictReader(f,delimiter=',')
        y_count = 1
        for n in reader:
            if y_count == row_index:
                cell = n[column_name]
                return cell
            y_count += 1

id_item="1812242028"
img_list_query=[]
for row in range(100):
    product_id=read_cell(img_file,"PRODUCT_ID",row)
    if product_id==id_item:
        img_list_query.append(read_cell(img_file,"IMG_FILE_NAME",row))
print(img_list_query)   

上述代码的结果:

['C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_0', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_1', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_2', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_3', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_4', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_5', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_6', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_7', 'C:\\\\Users\\\\admin\\\\Desktop\\\\set-5-goi-mat-na-trai-cay-duong-da-real-nature-mask_8']

我不知道为什么“ \”变成“ \\”?

请给我一些有关此问题的说明及其解决方案?谢谢!

1 个答案:

答案 0 :(得分:1)

\是“ escape character”。这意味着下一个字符是“特殊”。它允许字符串包含否则很难表示的特殊字符。例如,\n表示“换行”,\t表示“水平制表符”。那么如何代表一个\呢?您使用\\,实际上是\

选择

\是因为它是一个不寻常的字符。不幸的是,早在1981年,Microsoft就选择\作为其MS-DOS的路径定界符。在将近40年后,Windows保留了这一传统,因此Windows路径通常使用多个\字符进行修饰。诀窍是只转义一次-因此在创建字符串时,\应该变成\\以保护它。从那里不应该再次逃脱。当您看到\\\\时,转义已执行了两次。