2010-01-14 18 views
2

我想從車輛列表中生成TSV文件....我還將對數據進行一些轉換,例如,如果傳輸值爲「自動」,則此值將顯示爲「A」,或者如果里程以英里爲單位,則將此值乘以1.6。在Django中生成TSV文件

這是什麼最好的方法呢?

UPDATE

OK ...所以我寫了下面的腳本:

from django.conf import settings 
import myapp.settings 
setup_environ(myapp.settings) 

from django.db import models 
from myapp.vehicles.models import Vehicle 

import csv 

data = Vehicle.objects.all().exclude(status__status='Internal Use'). 
    exclude(status__status='Sold').order_by('-common_vehicle__year', 
    'common_vehicle__series__model__manufacturer__manufacturer', 
    'common_vehicle__series__model__manufacturer__manufacturer_popularity') 


vehicles = csv.writer(open('cars.csv', 'w'), delimiter='\t') 
vehicles.writerow(["VIN","Stock","Year","Make","Model", 
    "TrimPackage","Transmission","DriveType","Odometer","OdometerType", 
    "Doors","BodyStyle","EngineType","Exterior","Interior","Condition", 
    "Certified","FuelType","Price"]) 
for vehicle in data: 
    vehicles.writerow(["1130","26919",vehicle.vin,vehicle.stock_number, 
    vehicle.common_vehicle.year.year, 
    vehicle.common_vehicle.series.model.manufacturer.manufacturer, 
    vehicle.common_vehicle.series.model.model,vehicle.common_vehicle.series.series, 
    transmission,vehicle.common_vehicle.drive_train.drive_train, 
    vehicle.odometer_reading,"KM",vehicle.common_vehicle.body_style.doors, 
    body_style,engine_type,vehicle.exterior_colour.exterior_colour, 
    vehicle.interior_colour.interior_colour,"E","Y",fuel_type,"0"]) 

然而,當我嘗試運行腳本,我得到這個錯誤:ImportError: No module named myapp.settings

UPDATE 2 剛剛看到我的錯誤...現在一切正常

+0

打開文件,寫入文件,關閉文件。你到底在問什麼? – 2010-01-14 19:17:22

+0

這個過程本身....我對文件操作知之甚少 – Stephen 2010-01-14 19:32:00

回答

6

在Python中使用CSV support

dialect delimiter更改爲選項卡。

鏈接的頁面有很多例子。

+0

這看起來更像它....讓我試試看看它是否可行。謝謝 – Stephen 2010-01-15 05:52:23

0

你需要一個靜態文件嗎?或者你是否正在尋找基於Django應用程序中的其他內容動態生成這些信息?

無論哪種方式,我認爲Django模板系統可以正常工作。您所需要做的就是設計一個您想要數據的格式的模板。如果您需要一個靜態文件,請製作一個小腳本,將模板的結果保存到一個靜態文件中。