[{"data":1,"prerenderedAt":2485},["ShallowReactive",2],{"doc-\u002Fhow-to\u002Fhow-to-write-a-csv-file-in-python":3},{"id":4,"title":5,"body":6,"description":2478,"extension":2479,"meta":2480,"navigation":86,"path":2481,"seo":2482,"stem":2483,"__hash__":2484},"content\u002Fhow-to\u002Fhow-to-write-a-csv-file-in-python.md","How to Write a CSV File in Python",{"type":7,"value":8,"toc":2453},"minimark",[9,13,17,25,28,54,59,320,327,331,334,368,371,555,560,563,571,584,588,593,596,607,610,612,792,795,805,808,843,846,850,855,858,860,1076,1079,1082,1096,1100,1105,1108,1125,1136,1138,1400,1403,1408,1415,1428,1432,1435,1459,1462,1596,1599,1606,1610,1613,1646,1651,1656,1659,1724,1727,1800,1804,1807,1867,1870,1876,1880,1888,1890,2088,2098,2102,2108,2113,2117,2120,2123,2126,2137,2142,2145,2149,2152,2259,2262,2279,2286,2290,2294,2299,2338,2345,2360,2364,2369,2377,2389,2397,2399,2411,2415,2449],[10,11,5],"h1",{"id":12},"how-to-write-a-csv-file-in-python",[14,15,16],"p",{},"If you want to save table-like data in Python, a CSV file is a common choice.",[14,18,19,20,24],{},"A CSV file stores data in rows and columns. Python includes a built-in ",[21,22,23],"code",{},"csv"," module that makes writing CSV files much easier and safer than building the text yourself.",[14,26,27],{},"This page shows you how to:",[29,30,31,35,38,44],"ul",{},[32,33,34],"li",{},"Create a new CSV file in Python",[32,36,37],{},"Write one row or many rows",[32,39,40,41,43],{},"Use the built-in ",[21,42,23],{}," module",[32,45,46,47,50,51],{},"Understand when to use ",[21,48,49],{},"csv.writer()"," and ",[21,52,53],{},"csv.DictWriter()",[55,56,58],"h2",{"id":57},"quick-answer","Quick answer",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import csv\n\nrows = [\n    [\"name\", \"age\", \"city\"],\n    [\"Alice\", 30, \"London\"],\n    [\"Bob\", 25, \"Paris\"]\n]\n\nwith open(\"people.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n    writer.writerows(rows)\n","python","",[21,67,68,81,88,102,141,170,199,204,209,276,302],{"__ignoreMap":65},[69,70,73,77],"span",{"class":71,"line":72},"line",1,[69,74,76],{"class":75},"sVHd0","import",[69,78,80],{"class":79},"su5hD"," csv\n",[69,82,84],{"class":71,"line":83},2,[69,85,87],{"emptyLinePlaceholder":86},true,"\n",[69,89,91,94,98],{"class":71,"line":90},3,[69,92,93],{"class":79},"rows ",[69,95,97],{"class":96},"smGrS","=",[69,99,101],{"class":100},"sP7_E"," [\n",[69,103,105,108,112,116,118,121,124,127,129,131,133,136,138],{"class":71,"line":104},4,[69,106,107],{"class":100},"    [",[69,109,111],{"class":110},"sjJ54","\"",[69,113,115],{"class":114},"s_sjI","name",[69,117,111],{"class":110},[69,119,120],{"class":100},",",[69,122,123],{"class":110}," \"",[69,125,126],{"class":114},"age",[69,128,111],{"class":110},[69,130,120],{"class":100},[69,132,123],{"class":110},[69,134,135],{"class":114},"city",[69,137,111],{"class":110},[69,139,140],{"class":100},"],\n",[69,142,144,146,148,151,153,155,159,161,163,166,168],{"class":71,"line":143},5,[69,145,107],{"class":100},[69,147,111],{"class":110},[69,149,150],{"class":114},"Alice",[69,152,111],{"class":110},[69,154,120],{"class":100},[69,156,158],{"class":157},"srdBf"," 30",[69,160,120],{"class":100},[69,162,123],{"class":110},[69,164,165],{"class":114},"London",[69,167,111],{"class":110},[69,169,140],{"class":100},[69,171,173,175,177,180,182,184,187,189,191,194,196],{"class":71,"line":172},6,[69,174,107],{"class":100},[69,176,111],{"class":110},[69,178,179],{"class":114},"Bob",[69,181,111],{"class":110},[69,183,120],{"class":100},[69,185,186],{"class":157}," 25",[69,188,120],{"class":100},[69,190,123],{"class":110},[69,192,193],{"class":114},"Paris",[69,195,111],{"class":110},[69,197,198],{"class":100},"]\n",[69,200,202],{"class":71,"line":201},7,[69,203,198],{"class":100},[69,205,207],{"class":71,"line":206},8,[69,208,87],{"emptyLinePlaceholder":86},[69,210,212,215,219,222,224,227,229,231,233,236,238,240,244,246,249,251,254,256,258,261,263,266,269,273],{"class":71,"line":211},9,[69,213,214],{"class":75},"with",[69,216,218],{"class":217},"sptTA"," open",[69,220,221],{"class":100},"(",[69,223,111],{"class":110},[69,225,226],{"class":114},"people.csv",[69,228,111],{"class":110},[69,230,120],{"class":100},[69,232,123],{"class":110},[69,234,235],{"class":114},"w",[69,237,111],{"class":110},[69,239,120],{"class":100},[69,241,243],{"class":242},"s99_P"," newline",[69,245,97],{"class":96},[69,247,248],{"class":110},"\"\"",[69,250,120],{"class":100},[69,252,253],{"class":242}," encoding",[69,255,97],{"class":96},[69,257,111],{"class":110},[69,259,260],{"class":114},"utf-8",[69,262,111],{"class":110},[69,264,265],{"class":100},")",[69,267,268],{"class":75}," as",[69,270,272],{"class":271},"sMMDD"," file",[69,274,275],{"class":100},":\n",[69,277,279,282,284,287,290,294,296,299],{"class":71,"line":278},10,[69,280,281],{"class":79},"    writer ",[69,283,97],{"class":96},[69,285,286],{"class":79}," csv",[69,288,289],{"class":100},".",[69,291,293],{"class":292},"slqww","writer",[69,295,221],{"class":100},[69,297,298],{"class":271},"file",[69,300,301],{"class":100},")\n",[69,303,305,308,310,313,315,318],{"class":71,"line":304},11,[69,306,307],{"class":79},"    writer",[69,309,289],{"class":100},[69,311,312],{"class":292},"writerows",[69,314,221],{"class":100},[69,316,317],{"class":292},"rows",[69,319,301],{"class":100},[14,321,322,323,326],{},"Use ",[21,324,325],{},"newline=\"\""," when opening the file. This helps prevent extra blank lines in CSV output.",[55,328,330],{"id":329},"the-simplest-way-to-write-a-csv-file","The simplest way to write a CSV file",[14,332,333],{},"The basic steps are:",[29,335,336,341,347,352,358],{},[32,337,338,339,43],{},"Import the ",[21,340,23],{},[32,342,343,344],{},"Open the file in write mode using ",[21,345,346],{},"\"w\"",[32,348,322,349,351],{},[21,350,325],{}," when opening the file",[32,353,354,355],{},"Create a writer with ",[21,356,357],{},"csv.writer(file)",[32,359,360,361,364,365],{},"Write rows with ",[21,362,363],{},"writer.writerow()"," or ",[21,366,367],{},"writer.writerows()",[14,369,370],{},"Example:",[60,372,374],{"className":62,"code":373,"language":64,"meta":65,"style":65},"import csv\n\nwith open(\"people.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n\n    writer.writerow([\"name\", \"age\", \"city\"])\n    writer.writerow([\"Alice\", 30, \"London\"])\n    writer.writerow([\"Bob\", 25, \"Paris\"])\n",[21,375,376,382,386,436,454,458,495,525],{"__ignoreMap":65},[69,377,378,380],{"class":71,"line":72},[69,379,76],{"class":75},[69,381,80],{"class":79},[69,383,384],{"class":71,"line":83},[69,385,87],{"emptyLinePlaceholder":86},[69,387,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434],{"class":71,"line":90},[69,389,214],{"class":75},[69,391,218],{"class":217},[69,393,221],{"class":100},[69,395,111],{"class":110},[69,397,226],{"class":114},[69,399,111],{"class":110},[69,401,120],{"class":100},[69,403,123],{"class":110},[69,405,235],{"class":114},[69,407,111],{"class":110},[69,409,120],{"class":100},[69,411,243],{"class":242},[69,413,97],{"class":96},[69,415,248],{"class":110},[69,417,120],{"class":100},[69,419,253],{"class":242},[69,421,97],{"class":96},[69,423,111],{"class":110},[69,425,260],{"class":114},[69,427,111],{"class":110},[69,429,265],{"class":100},[69,431,268],{"class":75},[69,433,272],{"class":271},[69,435,275],{"class":100},[69,437,438,440,442,444,446,448,450,452],{"class":71,"line":104},[69,439,281],{"class":79},[69,441,97],{"class":96},[69,443,286],{"class":79},[69,445,289],{"class":100},[69,447,293],{"class":292},[69,449,221],{"class":100},[69,451,298],{"class":271},[69,453,301],{"class":100},[69,455,456],{"class":71,"line":143},[69,457,87],{"emptyLinePlaceholder":86},[69,459,460,462,464,467,470,472,474,476,478,480,482,484,486,488,490,492],{"class":71,"line":172},[69,461,307],{"class":79},[69,463,289],{"class":100},[69,465,466],{"class":292},"writerow",[69,468,469],{"class":100},"([",[69,471,111],{"class":110},[69,473,115],{"class":114},[69,475,111],{"class":110},[69,477,120],{"class":100},[69,479,123],{"class":110},[69,481,126],{"class":114},[69,483,111],{"class":110},[69,485,120],{"class":100},[69,487,123],{"class":110},[69,489,135],{"class":114},[69,491,111],{"class":110},[69,493,494],{"class":100},"])\n",[69,496,497,499,501,503,505,507,509,511,513,515,517,519,521,523],{"class":71,"line":201},[69,498,307],{"class":79},[69,500,289],{"class":100},[69,502,466],{"class":292},[69,504,469],{"class":100},[69,506,111],{"class":110},[69,508,150],{"class":114},[69,510,111],{"class":110},[69,512,120],{"class":100},[69,514,158],{"class":157},[69,516,120],{"class":100},[69,518,123],{"class":110},[69,520,165],{"class":114},[69,522,111],{"class":110},[69,524,494],{"class":100},[69,526,527,529,531,533,535,537,539,541,543,545,547,549,551,553],{"class":71,"line":206},[69,528,307],{"class":79},[69,530,289],{"class":100},[69,532,466],{"class":292},[69,534,469],{"class":100},[69,536,111],{"class":110},[69,538,179],{"class":114},[69,540,111],{"class":110},[69,542,120],{"class":100},[69,544,186],{"class":157},[69,546,120],{"class":100},[69,548,123],{"class":110},[69,550,193],{"class":114},[69,552,111],{"class":110},[69,554,494],{"class":100},[14,556,557,558,289],{},"This creates a file named ",[21,559,226],{},[14,561,562],{},"Its contents will look like this:",[60,564,569],{"className":565,"code":567,"language":568,"meta":65},[566],"language-text","name,age,city\nAlice,30,London\nBob,25,Paris\n","text",[21,570,567],{"__ignoreMap":65},[14,572,573,574,577,578,583],{},"If you are not sure how ",[21,575,576],{},"open()"," works, see ",[579,580,582],"a",{"href":581},"\u002Freference\u002Fpython-open-function-explained\u002F","the Python open() function explained",". For a broader overview of CSV tools, see the Python csv module overview.",[55,585,587],{"id":586},"write-one-row-at-a-time","Write one row at a time",[14,589,322,590,592],{},[21,591,363],{}," when you want to write a single row.",[14,594,595],{},"This is useful when:",[29,597,598,601,604],{},[32,599,600],{},"You are building rows inside a loop",[32,602,603],{},"You only need to add one line at a time",[32,605,606],{},"Your data is not stored in one big list yet",[14,608,609],{},"Each list becomes one row in the CSV file.",[14,611,370],{},[60,613,615],{"className":62,"code":614,"language":64,"meta":65,"style":65},"import csv\n\nnames = [\"Alice\", \"Bob\", \"Cara\"]\n\nwith open(\"names.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n\n    writer.writerow([\"name\"])\n\n    for name in names:\n        writer.writerow([name])\n",[21,616,617,623,627,662,666,717,735,739,757,761,777],{"__ignoreMap":65},[69,618,619,621],{"class":71,"line":72},[69,620,76],{"class":75},[69,622,80],{"class":79},[69,624,625],{"class":71,"line":83},[69,626,87],{"emptyLinePlaceholder":86},[69,628,629,632,634,637,639,641,643,645,647,649,651,653,655,658,660],{"class":71,"line":90},[69,630,631],{"class":79},"names ",[69,633,97],{"class":96},[69,635,636],{"class":100}," [",[69,638,111],{"class":110},[69,640,150],{"class":114},[69,642,111],{"class":110},[69,644,120],{"class":100},[69,646,123],{"class":110},[69,648,179],{"class":114},[69,650,111],{"class":110},[69,652,120],{"class":100},[69,654,123],{"class":110},[69,656,657],{"class":114},"Cara",[69,659,111],{"class":110},[69,661,198],{"class":100},[69,663,664],{"class":71,"line":104},[69,665,87],{"emptyLinePlaceholder":86},[69,667,668,670,672,674,676,679,681,683,685,687,689,691,693,695,697,699,701,703,705,707,709,711,713,715],{"class":71,"line":143},[69,669,214],{"class":75},[69,671,218],{"class":217},[69,673,221],{"class":100},[69,675,111],{"class":110},[69,677,678],{"class":114},"names.csv",[69,680,111],{"class":110},[69,682,120],{"class":100},[69,684,123],{"class":110},[69,686,235],{"class":114},[69,688,111],{"class":110},[69,690,120],{"class":100},[69,692,243],{"class":242},[69,694,97],{"class":96},[69,696,248],{"class":110},[69,698,120],{"class":100},[69,700,253],{"class":242},[69,702,97],{"class":96},[69,704,111],{"class":110},[69,706,260],{"class":114},[69,708,111],{"class":110},[69,710,265],{"class":100},[69,712,268],{"class":75},[69,714,272],{"class":271},[69,716,275],{"class":100},[69,718,719,721,723,725,727,729,731,733],{"class":71,"line":172},[69,720,281],{"class":79},[69,722,97],{"class":96},[69,724,286],{"class":79},[69,726,289],{"class":100},[69,728,293],{"class":292},[69,730,221],{"class":100},[69,732,298],{"class":271},[69,734,301],{"class":100},[69,736,737],{"class":71,"line":201},[69,738,87],{"emptyLinePlaceholder":86},[69,740,741,743,745,747,749,751,753,755],{"class":71,"line":206},[69,742,307],{"class":79},[69,744,289],{"class":100},[69,746,466],{"class":292},[69,748,469],{"class":100},[69,750,111],{"class":110},[69,752,115],{"class":114},[69,754,111],{"class":110},[69,756,494],{"class":100},[69,758,759],{"class":71,"line":211},[69,760,87],{"emptyLinePlaceholder":86},[69,762,763,766,769,772,775],{"class":71,"line":278},[69,764,765],{"class":75},"    for",[69,767,768],{"class":79}," name ",[69,770,771],{"class":75},"in",[69,773,774],{"class":79}," names",[69,776,275],{"class":100},[69,778,779,782,784,786,788,790],{"class":71,"line":304},[69,780,781],{"class":79},"        writer",[69,783,289],{"class":100},[69,785,466],{"class":292},[69,787,469],{"class":100},[69,789,115],{"class":292},[69,791,494],{"class":100},[14,793,794],{},"Important detail:",[29,796,797,802],{},[32,798,799,801],{},[21,800,363],{}," expects one row",[32,803,804],{},"That row is usually a list or tuple",[14,806,807],{},"For example, this is correct:",[60,809,811],{"className":62,"code":810,"language":64,"meta":65,"style":65},"writer.writerow([\"Alice\", 30, \"London\"])\n",[21,812,813],{"__ignoreMap":65},[69,814,815,817,819,821,823,825,827,829,831,833,835,837,839,841],{"class":71,"line":72},[69,816,293],{"class":79},[69,818,289],{"class":100},[69,820,466],{"class":292},[69,822,469],{"class":100},[69,824,111],{"class":110},[69,826,150],{"class":114},[69,828,111],{"class":110},[69,830,120],{"class":100},[69,832,158],{"class":157},[69,834,120],{"class":100},[69,836,123],{"class":110},[69,838,165],{"class":114},[69,840,111],{"class":110},[69,842,494],{"class":100},[14,844,845],{},"A common beginner mistake is passing a plain value instead of a list.",[55,847,849],{"id":848},"write-many-rows-at-once","Write many rows at once",[14,851,322,852,854],{},[21,853,367],{}," when you already have a list of rows.",[14,856,857],{},"Each inner list becomes one CSV row.",[14,859,370],{},[60,861,863],{"className":62,"code":862,"language":64,"meta":65,"style":65},"import csv\n\nrows = [\n    [\"name\", \"age\", \"city\"],\n    [\"Alice\", 30, \"London\"],\n    [\"Bob\", 25, \"Paris\"],\n    [\"Cara\", 28, \"Berlin\"]\n]\n\nwith open(\"people.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n    writer.writerows(rows)\n",[21,864,865,871,875,883,911,935,959,985,989,993,1043,1061],{"__ignoreMap":65},[69,866,867,869],{"class":71,"line":72},[69,868,76],{"class":75},[69,870,80],{"class":79},[69,872,873],{"class":71,"line":83},[69,874,87],{"emptyLinePlaceholder":86},[69,876,877,879,881],{"class":71,"line":90},[69,878,93],{"class":79},[69,880,97],{"class":96},[69,882,101],{"class":100},[69,884,885,887,889,891,893,895,897,899,901,903,905,907,909],{"class":71,"line":104},[69,886,107],{"class":100},[69,888,111],{"class":110},[69,890,115],{"class":114},[69,892,111],{"class":110},[69,894,120],{"class":100},[69,896,123],{"class":110},[69,898,126],{"class":114},[69,900,111],{"class":110},[69,902,120],{"class":100},[69,904,123],{"class":110},[69,906,135],{"class":114},[69,908,111],{"class":110},[69,910,140],{"class":100},[69,912,913,915,917,919,921,923,925,927,929,931,933],{"class":71,"line":143},[69,914,107],{"class":100},[69,916,111],{"class":110},[69,918,150],{"class":114},[69,920,111],{"class":110},[69,922,120],{"class":100},[69,924,158],{"class":157},[69,926,120],{"class":100},[69,928,123],{"class":110},[69,930,165],{"class":114},[69,932,111],{"class":110},[69,934,140],{"class":100},[69,936,937,939,941,943,945,947,949,951,953,955,957],{"class":71,"line":172},[69,938,107],{"class":100},[69,940,111],{"class":110},[69,942,179],{"class":114},[69,944,111],{"class":110},[69,946,120],{"class":100},[69,948,186],{"class":157},[69,950,120],{"class":100},[69,952,123],{"class":110},[69,954,193],{"class":114},[69,956,111],{"class":110},[69,958,140],{"class":100},[69,960,961,963,965,967,969,971,974,976,978,981,983],{"class":71,"line":201},[69,962,107],{"class":100},[69,964,111],{"class":110},[69,966,657],{"class":114},[69,968,111],{"class":110},[69,970,120],{"class":100},[69,972,973],{"class":157}," 28",[69,975,120],{"class":100},[69,977,123],{"class":110},[69,979,980],{"class":114},"Berlin",[69,982,111],{"class":110},[69,984,198],{"class":100},[69,986,987],{"class":71,"line":206},[69,988,198],{"class":100},[69,990,991],{"class":71,"line":211},[69,992,87],{"emptyLinePlaceholder":86},[69,994,995,997,999,1001,1003,1005,1007,1009,1011,1013,1015,1017,1019,1021,1023,1025,1027,1029,1031,1033,1035,1037,1039,1041],{"class":71,"line":278},[69,996,214],{"class":75},[69,998,218],{"class":217},[69,1000,221],{"class":100},[69,1002,111],{"class":110},[69,1004,226],{"class":114},[69,1006,111],{"class":110},[69,1008,120],{"class":100},[69,1010,123],{"class":110},[69,1012,235],{"class":114},[69,1014,111],{"class":110},[69,1016,120],{"class":100},[69,1018,243],{"class":242},[69,1020,97],{"class":96},[69,1022,248],{"class":110},[69,1024,120],{"class":100},[69,1026,253],{"class":242},[69,1028,97],{"class":96},[69,1030,111],{"class":110},[69,1032,260],{"class":114},[69,1034,111],{"class":110},[69,1036,265],{"class":100},[69,1038,268],{"class":75},[69,1040,272],{"class":271},[69,1042,275],{"class":100},[69,1044,1045,1047,1049,1051,1053,1055,1057,1059],{"class":71,"line":304},[69,1046,281],{"class":79},[69,1048,97],{"class":96},[69,1050,286],{"class":79},[69,1052,289],{"class":100},[69,1054,293],{"class":292},[69,1056,221],{"class":100},[69,1058,298],{"class":271},[69,1060,301],{"class":100},[69,1062,1064,1066,1068,1070,1072,1074],{"class":71,"line":1063},12,[69,1065,307],{"class":79},[69,1067,289],{"class":100},[69,1069,312],{"class":292},[69,1071,221],{"class":100},[69,1073,317],{"class":292},[69,1075,301],{"class":100},[14,1077,1078],{},"This is a good choice for small, ready-made datasets.",[14,1080,1081],{},"Use:",[29,1083,1084,1090],{},[32,1085,1086,1089],{},[21,1087,1088],{},"writerow()"," for one row",[32,1091,1092,1095],{},[21,1093,1094],{},"writerows()"," for multiple rows",[55,1097,1099],{"id":1098},"write-csv-files-with-column-names","Write CSV files with column names",[14,1101,322,1102,1104],{},[21,1103,53],{}," when your data is stored as dictionaries.",[14,1106,1107],{},"This is helpful when:",[29,1109,1110,1119,1122],{},[32,1111,1112,1113,50,1116],{},"Your data has named fields like ",[21,1114,1115],{},"\"name\"",[21,1117,1118],{},"\"age\"",[32,1120,1121],{},"You want to control the column order",[32,1123,1124],{},"You want cleaner code when working with structured data",[14,1126,1127,1128,1131,1132,1135],{},"Set ",[21,1129,1130],{},"fieldnames"," to choose the column order, then call ",[21,1133,1134],{},"writeheader()"," to write the first row.",[14,1137,370],{},[60,1139,1141],{"className":62,"code":1140,"language":64,"meta":65,"style":65},"import csv\n\nrows = [\n    {\"name\": \"Alice\", \"age\": 30, \"city\": \"London\"},\n    {\"name\": \"Bob\", \"age\": 25, \"city\": \"Paris\"}\n]\n\nwith open(\"people.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.DictWriter(file, fieldnames=[\"name\", \"age\", \"city\"])\n\n    writer.writeheader()\n    writer.writerows(rows)\n",[21,1142,1143,1149,1153,1161,1212,1261,1265,1269,1319,1370,1374,1386],{"__ignoreMap":65},[69,1144,1145,1147],{"class":71,"line":72},[69,1146,76],{"class":75},[69,1148,80],{"class":79},[69,1150,1151],{"class":71,"line":83},[69,1152,87],{"emptyLinePlaceholder":86},[69,1154,1155,1157,1159],{"class":71,"line":90},[69,1156,93],{"class":79},[69,1158,97],{"class":96},[69,1160,101],{"class":100},[69,1162,1163,1166,1168,1170,1172,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209],{"class":71,"line":104},[69,1164,1165],{"class":100},"    {",[69,1167,111],{"class":110},[69,1169,115],{"class":114},[69,1171,111],{"class":110},[69,1173,1174],{"class":100},":",[69,1176,123],{"class":110},[69,1178,150],{"class":114},[69,1180,111],{"class":110},[69,1182,120],{"class":100},[69,1184,123],{"class":110},[69,1186,126],{"class":114},[69,1188,111],{"class":110},[69,1190,1174],{"class":100},[69,1192,158],{"class":157},[69,1194,120],{"class":100},[69,1196,123],{"class":110},[69,1198,135],{"class":114},[69,1200,111],{"class":110},[69,1202,1174],{"class":100},[69,1204,123],{"class":110},[69,1206,165],{"class":114},[69,1208,111],{"class":110},[69,1210,1211],{"class":100},"},\n",[69,1213,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258],{"class":71,"line":143},[69,1215,1165],{"class":100},[69,1217,111],{"class":110},[69,1219,115],{"class":114},[69,1221,111],{"class":110},[69,1223,1174],{"class":100},[69,1225,123],{"class":110},[69,1227,179],{"class":114},[69,1229,111],{"class":110},[69,1231,120],{"class":100},[69,1233,123],{"class":110},[69,1235,126],{"class":114},[69,1237,111],{"class":110},[69,1239,1174],{"class":100},[69,1241,186],{"class":157},[69,1243,120],{"class":100},[69,1245,123],{"class":110},[69,1247,135],{"class":114},[69,1249,111],{"class":110},[69,1251,1174],{"class":100},[69,1253,123],{"class":110},[69,1255,193],{"class":114},[69,1257,111],{"class":110},[69,1259,1260],{"class":100},"}\n",[69,1262,1263],{"class":71,"line":172},[69,1264,198],{"class":100},[69,1266,1267],{"class":71,"line":201},[69,1268,87],{"emptyLinePlaceholder":86},[69,1270,1271,1273,1275,1277,1279,1281,1283,1285,1287,1289,1291,1293,1295,1297,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317],{"class":71,"line":206},[69,1272,214],{"class":75},[69,1274,218],{"class":217},[69,1276,221],{"class":100},[69,1278,111],{"class":110},[69,1280,226],{"class":114},[69,1282,111],{"class":110},[69,1284,120],{"class":100},[69,1286,123],{"class":110},[69,1288,235],{"class":114},[69,1290,111],{"class":110},[69,1292,120],{"class":100},[69,1294,243],{"class":242},[69,1296,97],{"class":96},[69,1298,248],{"class":110},[69,1300,120],{"class":100},[69,1302,253],{"class":242},[69,1304,97],{"class":96},[69,1306,111],{"class":110},[69,1308,260],{"class":114},[69,1310,111],{"class":110},[69,1312,265],{"class":100},[69,1314,268],{"class":75},[69,1316,272],{"class":271},[69,1318,275],{"class":100},[69,1320,1321,1323,1325,1327,1329,1332,1334,1336,1338,1341,1343,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368],{"class":71,"line":211},[69,1322,281],{"class":79},[69,1324,97],{"class":96},[69,1326,286],{"class":79},[69,1328,289],{"class":100},[69,1330,1331],{"class":292},"DictWriter",[69,1333,221],{"class":100},[69,1335,298],{"class":271},[69,1337,120],{"class":100},[69,1339,1340],{"class":242}," fieldnames",[69,1342,97],{"class":96},[69,1344,1345],{"class":100},"[",[69,1347,111],{"class":110},[69,1349,115],{"class":114},[69,1351,111],{"class":110},[69,1353,120],{"class":100},[69,1355,123],{"class":110},[69,1357,126],{"class":114},[69,1359,111],{"class":110},[69,1361,120],{"class":100},[69,1363,123],{"class":110},[69,1365,135],{"class":114},[69,1367,111],{"class":110},[69,1369,494],{"class":100},[69,1371,1372],{"class":71,"line":278},[69,1373,87],{"emptyLinePlaceholder":86},[69,1375,1376,1378,1380,1383],{"class":71,"line":304},[69,1377,307],{"class":79},[69,1379,289],{"class":100},[69,1381,1382],{"class":292},"writeheader",[69,1384,1385],{"class":100},"()\n",[69,1387,1388,1390,1392,1394,1396,1398],{"class":71,"line":1063},[69,1389,307],{"class":79},[69,1391,289],{"class":100},[69,1393,312],{"class":292},[69,1395,221],{"class":100},[69,1397,317],{"class":292},[69,1399,301],{"class":100},[14,1401,1402],{},"This creates:",[60,1404,1406],{"className":1405,"code":567,"language":568,"meta":65},[566],[21,1407,567],{"__ignoreMap":65},[14,1409,1410,1411,1414],{},"Why use ",[21,1412,1413],{},"DictWriter()","?",[29,1416,1417,1420,1423],{},[32,1418,1419],{},"The column names are clear",[32,1421,1422],{},"You do not need to remember the position of each value",[32,1424,1425,1426],{},"You control the output order with ",[21,1427,1130],{},[55,1429,1431],{"id":1430},"important-file-options-to-use","Important file options to use",[14,1433,1434],{},"When writing CSV files, these options matter:",[29,1436,1437,1443,1448,1453],{},[32,1438,1439,1442],{},[21,1440,1441],{},"encoding=\"utf-8\""," for text data",[32,1444,1445,1447],{},[21,1446,325],{}," for CSV files",[32,1449,1450,1452],{},[21,1451,346],{}," to overwrite an existing file",[32,1454,1455,1458],{},[21,1456,1457],{},"\"a\""," to add rows instead of replacing the file",[14,1460,1461],{},"Example using append mode:",[60,1463,1465],{"className":62,"code":1464,"language":64,"meta":65,"style":65},"import csv\n\nnew_row = [\"Dana\", 31, \"Rome\"]\n\nwith open(\"people.csv\", \"a\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n    writer.writerow(new_row)\n",[21,1466,1467,1473,1477,1509,1513,1563,1581],{"__ignoreMap":65},[69,1468,1469,1471],{"class":71,"line":72},[69,1470,76],{"class":75},[69,1472,80],{"class":79},[69,1474,1475],{"class":71,"line":83},[69,1476,87],{"emptyLinePlaceholder":86},[69,1478,1479,1482,1484,1486,1488,1491,1493,1495,1498,1500,1502,1505,1507],{"class":71,"line":90},[69,1480,1481],{"class":79},"new_row ",[69,1483,97],{"class":96},[69,1485,636],{"class":100},[69,1487,111],{"class":110},[69,1489,1490],{"class":114},"Dana",[69,1492,111],{"class":110},[69,1494,120],{"class":100},[69,1496,1497],{"class":157}," 31",[69,1499,120],{"class":100},[69,1501,123],{"class":110},[69,1503,1504],{"class":114},"Rome",[69,1506,111],{"class":110},[69,1508,198],{"class":100},[69,1510,1511],{"class":71,"line":104},[69,1512,87],{"emptyLinePlaceholder":86},[69,1514,1515,1517,1519,1521,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541,1543,1545,1547,1549,1551,1553,1555,1557,1559,1561],{"class":71,"line":143},[69,1516,214],{"class":75},[69,1518,218],{"class":217},[69,1520,221],{"class":100},[69,1522,111],{"class":110},[69,1524,226],{"class":114},[69,1526,111],{"class":110},[69,1528,120],{"class":100},[69,1530,123],{"class":110},[69,1532,579],{"class":114},[69,1534,111],{"class":110},[69,1536,120],{"class":100},[69,1538,243],{"class":242},[69,1540,97],{"class":96},[69,1542,248],{"class":110},[69,1544,120],{"class":100},[69,1546,253],{"class":242},[69,1548,97],{"class":96},[69,1550,111],{"class":110},[69,1552,260],{"class":114},[69,1554,111],{"class":110},[69,1556,265],{"class":100},[69,1558,268],{"class":75},[69,1560,272],{"class":271},[69,1562,275],{"class":100},[69,1564,1565,1567,1569,1571,1573,1575,1577,1579],{"class":71,"line":172},[69,1566,281],{"class":79},[69,1568,97],{"class":96},[69,1570,286],{"class":79},[69,1572,289],{"class":100},[69,1574,293],{"class":292},[69,1576,221],{"class":100},[69,1578,298],{"class":271},[69,1580,301],{"class":100},[69,1582,1583,1585,1587,1589,1591,1594],{"class":71,"line":201},[69,1584,307],{"class":79},[69,1586,289],{"class":100},[69,1588,466],{"class":292},[69,1590,221],{"class":100},[69,1592,1593],{"class":292},"new_row",[69,1595,301],{"class":100},[14,1597,1598],{},"This adds a row to the end of the file instead of replacing it.",[14,1600,1601,1602,289],{},"If you want to learn more about appending, see ",[579,1603,1605],{"href":1604},"\u002Fhow-to\u002Fhow-to-append-to-a-file-in-python","how to append to a file in Python",[55,1607,1609],{"id":1608},"common-problems-beginners-run-into","Common problems beginners run into",[14,1611,1612],{},"Here are the most common mistakes when writing CSV files:",[29,1614,1615,1621,1626,1634,1639],{},[32,1616,1617,1618],{},"Forgetting to ",[21,1619,1620],{},"import csv",[32,1622,1623,1624],{},"Opening the file without ",[21,1625,325],{},[32,1627,1628,1629,1631,1632],{},"Using ",[21,1630,346],{}," when you meant to append with ",[21,1633,1457],{},[32,1635,1636,1637],{},"Passing a plain value instead of a list to ",[21,1638,1088],{},[32,1640,1628,1641,1643,1644],{},[21,1642,1331],{}," without matching ",[21,1645,1130],{},[1647,1648,1650],"h3",{"id":1649},"extra-blank-lines","Extra blank lines",[14,1652,1653,1654,289],{},"If your CSV file has blank lines between rows, the usual cause is missing ",[21,1655,325],{},[14,1657,1658],{},"Wrong:",[60,1660,1662],{"className":62,"code":1661,"language":64,"meta":65,"style":65},"with open(\"people.csv\", \"w\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n",[21,1663,1664,1706],{"__ignoreMap":65},[69,1665,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704],{"class":71,"line":72},[69,1667,214],{"class":75},[69,1669,218],{"class":217},[69,1671,221],{"class":100},[69,1673,111],{"class":110},[69,1675,226],{"class":114},[69,1677,111],{"class":110},[69,1679,120],{"class":100},[69,1681,123],{"class":110},[69,1683,235],{"class":114},[69,1685,111],{"class":110},[69,1687,120],{"class":100},[69,1689,253],{"class":242},[69,1691,97],{"class":96},[69,1693,111],{"class":110},[69,1695,260],{"class":114},[69,1697,111],{"class":110},[69,1699,265],{"class":100},[69,1701,268],{"class":75},[69,1703,272],{"class":271},[69,1705,275],{"class":100},[69,1707,1708,1710,1712,1714,1716,1718,1720,1722],{"class":71,"line":83},[69,1709,281],{"class":79},[69,1711,97],{"class":96},[69,1713,286],{"class":79},[69,1715,289],{"class":100},[69,1717,293],{"class":292},[69,1719,221],{"class":100},[69,1721,298],{"class":271},[69,1723,301],{"class":100},[14,1725,1726],{},"Correct:",[60,1728,1730],{"className":62,"code":1729,"language":64,"meta":65,"style":65},"with open(\"people.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.writer(file)\n",[21,1731,1732,1782],{"__ignoreMap":65},[69,1733,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780],{"class":71,"line":72},[69,1735,214],{"class":75},[69,1737,218],{"class":217},[69,1739,221],{"class":100},[69,1741,111],{"class":110},[69,1743,226],{"class":114},[69,1745,111],{"class":110},[69,1747,120],{"class":100},[69,1749,123],{"class":110},[69,1751,235],{"class":114},[69,1753,111],{"class":110},[69,1755,120],{"class":100},[69,1757,243],{"class":242},[69,1759,97],{"class":96},[69,1761,248],{"class":110},[69,1763,120],{"class":100},[69,1765,253],{"class":242},[69,1767,97],{"class":96},[69,1769,111],{"class":110},[69,1771,260],{"class":114},[69,1773,111],{"class":110},[69,1775,265],{"class":100},[69,1777,268],{"class":75},[69,1779,272],{"class":271},[69,1781,275],{"class":100},[69,1783,1784,1786,1788,1790,1792,1794,1796,1798],{"class":71,"line":83},[69,1785,281],{"class":79},[69,1787,97],{"class":96},[69,1789,286],{"class":79},[69,1791,289],{"class":100},[69,1793,293],{"class":292},[69,1795,221],{"class":100},[69,1797,298],{"class":271},[69,1799,301],{"class":100},[1647,1801,1803],{"id":1802},"badly-formatted-rows","Badly formatted rows",[14,1805,1806],{},"Do not build CSV lines yourself with commas like this:",[60,1808,1810],{"className":62,"code":1809,"language":64,"meta":65,"style":65},"name = \"Alice\"\nage = 30\nline = name + \",\" + str(age)\n",[21,1811,1812,1826,1836],{"__ignoreMap":65},[69,1813,1814,1817,1819,1821,1823],{"class":71,"line":72},[69,1815,1816],{"class":79},"name ",[69,1818,97],{"class":96},[69,1820,123],{"class":110},[69,1822,150],{"class":114},[69,1824,1825],{"class":110},"\"\n",[69,1827,1828,1831,1833],{"class":71,"line":83},[69,1829,1830],{"class":79},"age ",[69,1832,97],{"class":96},[69,1834,1835],{"class":157}," 30\n",[69,1837,1838,1841,1843,1845,1848,1850,1852,1854,1857,1861,1863,1865],{"class":71,"line":90},[69,1839,1840],{"class":79},"line ",[69,1842,97],{"class":96},[69,1844,768],{"class":79},[69,1846,1847],{"class":96},"+",[69,1849,123],{"class":110},[69,1851,120],{"class":114},[69,1853,111],{"class":110},[69,1855,1856],{"class":96}," +",[69,1858,1860],{"class":1859},"sZMiF"," str",[69,1862,221],{"class":100},[69,1864,126],{"class":292},[69,1866,301],{"class":100},[14,1868,1869],{},"This may break if values contain commas or quotes.",[14,1871,1872,1873,1875],{},"Use the ",[21,1874,23],{}," module instead.",[1647,1877,1879],{"id":1878},"dictwriter-key-problems","DictWriter key problems",[14,1881,1882,1883,1885,1886,289],{},"With ",[21,1884,53],{},", the dictionary keys should match the ",[21,1887,1130],{},[14,1889,370],{},[60,1891,1893],{"className":62,"code":1892,"language":64,"meta":65,"style":65},"import csv\n\nrow = {\"name\": \"Alice\", \"age\": 30, \"country\": \"UK\"}\n\nwith open(\"people.csv\", \"w\", newline=\"\", encoding=\"utf-8\") as file:\n    writer = csv.DictWriter(file, fieldnames=[\"name\", \"age\", \"city\"])\n    writer.writeheader()\n    writer.writerow(row)\n",[21,1894,1895,1901,1905,1961,1965,2015,2063,2073],{"__ignoreMap":65},[69,1896,1897,1899],{"class":71,"line":72},[69,1898,76],{"class":75},[69,1900,80],{"class":79},[69,1902,1903],{"class":71,"line":83},[69,1904,87],{"emptyLinePlaceholder":86},[69,1906,1907,1910,1912,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933,1935,1937,1939,1941,1943,1945,1948,1950,1952,1954,1957,1959],{"class":71,"line":90},[69,1908,1909],{"class":79},"row ",[69,1911,97],{"class":96},[69,1913,1914],{"class":100}," {",[69,1916,111],{"class":110},[69,1918,115],{"class":114},[69,1920,111],{"class":110},[69,1922,1174],{"class":100},[69,1924,123],{"class":110},[69,1926,150],{"class":114},[69,1928,111],{"class":110},[69,1930,120],{"class":100},[69,1932,123],{"class":110},[69,1934,126],{"class":114},[69,1936,111],{"class":110},[69,1938,1174],{"class":100},[69,1940,158],{"class":157},[69,1942,120],{"class":100},[69,1944,123],{"class":110},[69,1946,1947],{"class":114},"country",[69,1949,111],{"class":110},[69,1951,1174],{"class":100},[69,1953,123],{"class":110},[69,1955,1956],{"class":114},"UK",[69,1958,111],{"class":110},[69,1960,1260],{"class":100},[69,1962,1963],{"class":71,"line":104},[69,1964,87],{"emptyLinePlaceholder":86},[69,1966,1967,1969,1971,1973,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997,1999,2001,2003,2005,2007,2009,2011,2013],{"class":71,"line":143},[69,1968,214],{"class":75},[69,1970,218],{"class":217},[69,1972,221],{"class":100},[69,1974,111],{"class":110},[69,1976,226],{"class":114},[69,1978,111],{"class":110},[69,1980,120],{"class":100},[69,1982,123],{"class":110},[69,1984,235],{"class":114},[69,1986,111],{"class":110},[69,1988,120],{"class":100},[69,1990,243],{"class":242},[69,1992,97],{"class":96},[69,1994,248],{"class":110},[69,1996,120],{"class":100},[69,1998,253],{"class":242},[69,2000,97],{"class":96},[69,2002,111],{"class":110},[69,2004,260],{"class":114},[69,2006,111],{"class":110},[69,2008,265],{"class":100},[69,2010,268],{"class":75},[69,2012,272],{"class":271},[69,2014,275],{"class":100},[69,2016,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035,2037,2039,2041,2043,2045,2047,2049,2051,2053,2055,2057,2059,2061],{"class":71,"line":172},[69,2018,281],{"class":79},[69,2020,97],{"class":96},[69,2022,286],{"class":79},[69,2024,289],{"class":100},[69,2026,1331],{"class":292},[69,2028,221],{"class":100},[69,2030,298],{"class":271},[69,2032,120],{"class":100},[69,2034,1340],{"class":242},[69,2036,97],{"class":96},[69,2038,1345],{"class":100},[69,2040,111],{"class":110},[69,2042,115],{"class":114},[69,2044,111],{"class":110},[69,2046,120],{"class":100},[69,2048,123],{"class":110},[69,2050,126],{"class":114},[69,2052,111],{"class":110},[69,2054,120],{"class":100},[69,2056,123],{"class":110},[69,2058,135],{"class":114},[69,2060,111],{"class":110},[69,2062,494],{"class":100},[69,2064,2065,2067,2069,2071],{"class":71,"line":201},[69,2066,307],{"class":79},[69,2068,289],{"class":100},[69,2070,1382],{"class":292},[69,2072,1385],{"class":100},[69,2074,2075,2077,2079,2081,2083,2086],{"class":71,"line":206},[69,2076,307],{"class":79},[69,2078,289],{"class":100},[69,2080,466],{"class":292},[69,2082,221],{"class":100},[69,2084,2085],{"class":292},"row",[69,2087,301],{"class":100},[14,2089,2090,2091,2094,2095,289],{},"This can cause problems because ",[21,2092,2093],{},"\"country\""," does not match ",[21,2096,2097],{},"\"city\"",[1647,2099,2101],{"id":2100},"overwriting-your-data","Overwriting your data",[14,2103,2104,2105,2107],{},"If you open a file with ",[21,2106,346],{},", Python replaces the file contents.",[14,2109,322,2110,2112],{},[21,2111,1457],{}," if you want to keep the old data and add new rows.",[55,2114,2116],{"id":2115},"when-not-to-use-this-method","When not to use this method",[14,2118,2119],{},"This method is a good beginner-friendly choice, but not every approach is a good idea.",[14,2121,2122],{},"Avoid manually joining values with commas for real CSV work.",[14,2124,2125],{},"Why?",[29,2127,2128,2131,2134],{},[32,2129,2130],{},"Values may contain commas",[32,2132,2133],{},"Values may contain quotes",[32,2135,2136],{},"CSV escaping rules can be tricky",[14,2138,1872,2139,2141],{},[21,2140,23],{}," module when values may contain commas or quotes.",[14,2143,2144],{},"For advanced data analysis, a library like pandas can be easier, but beginners usually do not need it just to create a CSV file.",[55,2146,2148],{"id":2147},"debugging-tips","Debugging tips",[14,2150,2151],{},"If your code is not working, these quick checks can help:",[60,2153,2155],{"className":62,"code":2154,"language":64,"meta":65,"style":65},"print(rows)\nprint(type(rows))\nprint(type(rows[0]))\nprint(file.name)\n\nimport os\nprint(os.path.exists(\"people.csv\"))\n",[21,2156,2157,2168,2184,2204,2219,2223,2230],{"__ignoreMap":65},[69,2158,2159,2162,2164,2166],{"class":71,"line":72},[69,2160,2161],{"class":217},"print",[69,2163,221],{"class":100},[69,2165,317],{"class":292},[69,2167,301],{"class":100},[69,2169,2170,2172,2174,2177,2179,2181],{"class":71,"line":83},[69,2171,2161],{"class":217},[69,2173,221],{"class":100},[69,2175,2176],{"class":1859},"type",[69,2178,221],{"class":100},[69,2180,317],{"class":292},[69,2182,2183],{"class":100},"))\n",[69,2185,2186,2188,2190,2192,2194,2196,2198,2201],{"class":71,"line":90},[69,2187,2161],{"class":217},[69,2189,221],{"class":100},[69,2191,2176],{"class":1859},[69,2193,221],{"class":100},[69,2195,317],{"class":292},[69,2197,1345],{"class":100},[69,2199,2200],{"class":157},"0",[69,2202,2203],{"class":100},"]))\n",[69,2205,2206,2208,2210,2212,2214,2217],{"class":71,"line":104},[69,2207,2161],{"class":217},[69,2209,221],{"class":100},[69,2211,298],{"class":271},[69,2213,289],{"class":100},[69,2215,115],{"class":2216},"skxfh",[69,2218,301],{"class":100},[69,2220,2221],{"class":71,"line":143},[69,2222,87],{"emptyLinePlaceholder":86},[69,2224,2225,2227],{"class":71,"line":172},[69,2226,76],{"class":75},[69,2228,2229],{"class":79}," os\n",[69,2231,2232,2234,2236,2239,2241,2244,2246,2249,2251,2253,2255,2257],{"class":71,"line":201},[69,2233,2161],{"class":217},[69,2235,221],{"class":100},[69,2237,2238],{"class":292},"os",[69,2240,289],{"class":100},[69,2242,2243],{"class":2216},"path",[69,2245,289],{"class":100},[69,2247,2248],{"class":292},"exists",[69,2250,221],{"class":100},[69,2252,111],{"class":110},[69,2254,226],{"class":114},[69,2256,111],{"class":110},[69,2258,2183],{"class":100},[14,2260,2261],{},"These checks help you answer questions like:",[29,2263,2264,2270,2273,2276],{},[32,2265,2266,2267,2269],{},"Is ",[21,2268,317],{}," really a list?",[32,2271,2272],{},"Is each row a list or dictionary?",[32,2274,2275],{},"What file name are you writing to?",[32,2277,2278],{},"Was the file actually created?",[14,2280,2281,2282,289],{},"If you need to check whether the file exists, see ",[579,2283,2285],{"href":2284},"\u002Fhow-to\u002Fhow-to-check-if-a-file-exists-in-python","how to check if a file exists in Python",[55,2287,2289],{"id":2288},"faq","FAQ",[1647,2291,2293],{"id":2292},"how-do-i-write-a-header-row-in-a-csv-file","How do I write a header row in a CSV file?",[14,2295,1882,2296,2298],{},[21,2297,49],{},", write the header as the first row.",[60,2300,2302],{"className":62,"code":2301,"language":64,"meta":65,"style":65},"writer.writerow([\"name\", \"age\", \"city\"])\n",[21,2303,2304],{"__ignoreMap":65},[69,2305,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336],{"class":71,"line":72},[69,2307,293],{"class":79},[69,2309,289],{"class":100},[69,2311,466],{"class":292},[69,2313,469],{"class":100},[69,2315,111],{"class":110},[69,2317,115],{"class":114},[69,2319,111],{"class":110},[69,2321,120],{"class":100},[69,2323,123],{"class":110},[69,2325,126],{"class":114},[69,2327,111],{"class":110},[69,2329,120],{"class":100},[69,2331,123],{"class":110},[69,2333,135],{"class":114},[69,2335,111],{"class":110},[69,2337,494],{"class":100},[14,2339,1882,2340,2342,2343,289],{},[21,2341,53],{},", use ",[21,2344,1134],{},[60,2346,2348],{"className":62,"code":2347,"language":64,"meta":65,"style":65},"writer.writeheader()\n",[21,2349,2350],{"__ignoreMap":65},[69,2351,2352,2354,2356,2358],{"class":71,"line":72},[69,2353,293],{"class":79},[69,2355,289],{"class":100},[69,2357,1382],{"class":292},[69,2359,1385],{"class":100},[1647,2361,2363],{"id":2362},"why-are-there-blank-lines-in-my-csv-file","Why are there blank lines in my CSV file?",[14,2365,2366,2367,289],{},"Usually because the file was not opened with ",[21,2368,325],{},[1647,2370,2372,2373,50,2375,1414],{"id":2371},"what-is-the-difference-between-writerow-and-writerows","What is the difference between ",[21,2374,1088],{},[21,2376,1094],{},[29,2378,2379,2384],{},[32,2380,2381,2383],{},[21,2382,1088],{}," writes one row",[32,2385,2386,2388],{},[21,2387,1094],{}," writes multiple rows",[1647,2390,2392,2393,364,2395,1414],{"id":2391},"should-i-use-csvwriter-or-csvdictwriter","Should I use ",[21,2394,49],{},[21,2396,53],{},[14,2398,1081],{},[29,2400,2401,2406],{},[32,2402,2403,2405],{},[21,2404,49],{}," for lists",[32,2407,2408,2410],{},[21,2409,53],{}," for dictionaries with named columns",[55,2412,2414],{"id":2413},"see-also","See also",[29,2416,2417,2421,2427,2432,2437,2443],{},[32,2418,2419],{},[579,2420,582],{"href":581},[32,2422,2423],{},[579,2424,2426],{"href":2425},"\u002Fhow-to\u002Fhow-to-read-a-csv-file-in-python","How to read a CSV file in Python",[32,2428,2429],{},[579,2430,2431],{"href":1604},"How to append to a file in Python",[32,2433,2434],{},[579,2435,2436],{"href":2284},"How to check if a file exists in Python",[32,2438,2439],{},[579,2440,2442],{"href":2441},"\u002Ferrors\u002Ffilenotfounderror-in-python-causes-and-fixes","Fix FileNotFoundError: No such file or directory",[32,2444,2445],{},[579,2446,2448],{"href":2447},"\u002Ferrors\u002Fpermissionerror-errno-13-permission-denied-fix","Fix PermissionError: [Errno 13] Permission denied",[2450,2451,2452],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .sMMDD, html code.shiki .sMMDD{--shiki-light:#90A4AE;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}",{"title":65,"searchDepth":83,"depth":83,"links":2454},[2455,2456,2457,2458,2459,2460,2461,2467,2468,2469,2477],{"id":57,"depth":83,"text":58},{"id":329,"depth":83,"text":330},{"id":586,"depth":83,"text":587},{"id":848,"depth":83,"text":849},{"id":1098,"depth":83,"text":1099},{"id":1430,"depth":83,"text":1431},{"id":1608,"depth":83,"text":1609,"children":2462},[2463,2464,2465,2466],{"id":1649,"depth":90,"text":1650},{"id":1802,"depth":90,"text":1803},{"id":1878,"depth":90,"text":1879},{"id":2100,"depth":90,"text":2101},{"id":2115,"depth":83,"text":2116},{"id":2147,"depth":83,"text":2148},{"id":2288,"depth":83,"text":2289,"children":2470},[2471,2472,2473,2475],{"id":2292,"depth":90,"text":2293},{"id":2362,"depth":90,"text":2363},{"id":2371,"depth":90,"text":2474},"What is the difference between writerow() and writerows()?",{"id":2391,"depth":90,"text":2476},"Should I use csv.writer() or csv.DictWriter()?",{"id":2413,"depth":83,"text":2414},"Master how to write a csv file in python in our comprehensive Python beginner guide.","md",{},"\u002Fhow-to\u002Fhow-to-write-a-csv-file-in-python",{"title":5,"description":2478},"how-to\u002Fhow-to-write-a-csv-file-in-python","AuzfkYs4WCLaW7a0vIqMDcKdlujmRJEBBPPaztaOBNg",1777585508177]