2
파이썬 2.4를 사용 중이며 unix 마지막 명령의 값을 CSV 파일로 내보내려고합니다. 어떻게 CSV 파일에 실제로 각 라인을 작성 얻을 수 알아낼 수 없다, 어떤 도움을 주시면 감사하겠습니다!dictreader를 CSV 파일로 작성하는 파이썬
import csv
def check(user,logfile,name):
logfile.write('********' + name + '*********\n')
g = subprocess.Popen(["last",user], stdout=subprocess.PIPE)
stdout, stderr = g.communicate()
reader = csv.DictReader(stdout.splitlines(),
delimiter=' ', skipinitialspace=True,
fieldnames=['id', 'pts', 'cpu',
'day', 'month', 'date',
'time', 'dash', 'off',
'loggedin', 'test1', 'test2'])
writer = csv.writer(open('dict.csv','wb'))
for row in reader:
writer.writerow(row)
헤더를 명시 적으로 다음과 같이 작성해야합니다. writer.writeheader() 그렇지 않으면 헤더가 쓰여지지 않습니다. – Bolaka
@Bolaka : 예, 모든 유스 케이스에는 헤더 행이 필요하지는 않습니다. OP는 여기에'DictReader'에 대한 명시적인'fieldnames' 인자를 사용했습니다. 이것은 입력 파일에 헤더 행이 없음을 의미합니다. –
사실, 모든 유스 케이스에는 헤더 행이 필요하지 않습니다. Writer = csv.DictWriter (open ('dict.csv', 'wb'), fieldnames = reader.fieldnames)는 헤더를 쓸 것이라는 인상을주었습니다. 그래서 나는 누군가가 헤더를 쓰고 싶다면 add - writer.writeheader()라고 대답해야한다고 생각한다. – Bolaka