2016-11-30 5 views
-2

Ich möchte die zweite Spalte der CSV-Datei mit dem Titel() Code drucken. Wenn ich dieses Snippet starte, gibt es einen Fehler. Bitte geben Sie Hilfe.Anwenden von Titel() auf eine Spalte

import csv 

books = csv.reader(open('C:\\Users\\Data.csv','rb')) 

for row in books: 
    print [r.title(row[1]) for r in row] 

Fehler:

Traceback (most recent call last): 
    File "C:\Users\update.py", line 32, in <module> 
    print [r.title(row[1]) for r in row] 
TypeError: title() takes no arguments (1 given) 

Antwort

-1

Sie nicht in ein Argument übergeben, und man kann nicht einfach nur row[1] Titel Gefasste von title auf allen Spalten aufrufen.

Verwenden Sie entweder str.title() nur eine Spalte oder auf alle. Zur Herstellung einer Liste mit nur einem Element Titel Gefasste, dann würden Sie haben, um die Liste mit dem ein Element wieder aufbauen ersetzt:

print row[:1] + [row[1].title()] + row[2:] 

oder die Reihe an Ort und Stelle vor dem Drucken bearbeiten:

row[1] = row[1].title() 
print row[1] 
Verwandte Themen