저는 Python을 처음 사용하고 있으며이를 사용하여 CSV 파일의 데이터를 구문 분석하고 조작하려고합니다. 아래 스크립트에는 실행되지 않는 코드 부분이 있습니다. 그러나 파이썬 구문에 대해 아주 근본적인 것을 오해하고있는 것이 아니라면 꼭 그래야한다고 생각합니다. 코드의 주석을보십시오. 주석을 사용하여 코드가 실행되지 않는다고 표시했습니다. 누군가 문제가 무엇인지 말해 줄 수 있습니까? 당신이 uniqueify(f)
를 호출 한 후이 Python 코드의 일부가 실행되지 않는 이유
f.seek(0)
를 추가
import csv
import datetime
def uniqueify(file):
checked = []
reader = csv.reader(file)
for row in reader:
if row[1] not in checked:
checked.append(row[1])
return checked
f = open('d:/test.csv')
reader = csv.reader(f)
print "Parsed file is:", f.name
offers = uniqueify(f)
print "Offers", "|",
print "Channel", "|",
start = datetime.date(2011, 12, 01)
end = datetime.date(2012, 01, 31)
d = start
while (d<=end):
print d, "|",
d += datetime.timedelta(days=1)
print #force to new line
for o in offers:
print o,"|", "DRTV","|"
for row in reader:
#NOTHING INSIDE THIS FOR LOOP EXECUTES
print row
if row[1] == o:
print "foo"
date = datetime.date(row[0])
padding = date - start
print padding
#NOTHNG BELOW THIS LINE EXECUTES
for row in reader:
print row
print "foo"
입력 파일의 내용을 볼 수 있습니까? 실제로 유효한 CSV가 아니므로 읽을 것이 없습니다. – jtbandes
민감한 데이터가 포함되어 있기 때문에 불행히도 없습니다. 그러나 CSV를 성공적으로 구문 분석하고 코드의 다른 부분에 내용을 인쇄하므로 CSV에 아무 문제가 없다고 생각됩니다. 예를 들어 my uniqueify 함수가 실행되고 offer 변수가 화면에 잘 인쇄됩니다. – hughesdan
스크럽 된 대표 샘플을 제공하십시오. 또한, 당신의 인쇄 진술은 이상하게 보입니다. 단일 리터럴 대신 암시 적으로 문자열 리터럴을 연결하는 이유가 있습니까? 또한 메시지 정확성을 위해 "파싱 된 파일 :"은 "지금 파싱"되어야합니다. –