Я хотел бы создать файл TSV из списка транспортных средств .... Я также сделаю некоторые преобразования данных, например если для передачи установлено значение «Автоматически», тогда это значение будет отображаться как «А», или если пробег указан в милях, умножьте это значение на 1,6.

Как лучше всего это сделать?

ОБНОВЛЕНИЕ

Хорошо ... Итак, я написал сценарий, как показано ниже:

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

ОБНОВЛЕНИЕ 2 Только что увидел свою ошибку ... теперь все хорошо

2
Stephen 14 Янв 2010 в 22:10
Откройте файл, напишите в него, закройте файл. О чем именно вы спрашиваете?
 – 
Antony Hatchkins
14 Янв 2010 в 22:17
Сам процесс .... Я не очень разбираюсь в файловых операциях
 – 
Stephen
14 Янв 2010 в 22:32

2 ответа

Лучший ответ

Воспользуйтесь поддержкой CSV в Python.

Измените разделитель диалектов на табуляцию.

На связанной странице есть множество примеров.

6
cethegeek 14 Янв 2010 в 22:33

Вам нужен статический файл? или вы хотите динамически генерировать эту информацию на основе чего-то еще в вашем приложении Django?

В любом случае, я думаю, что для этого отлично подойдет система шаблонов Django. Все, что вам нужно сделать, это разработать шаблон с форматом, в котором вы хотите данные. Если вам нужен статический файл, создайте небольшой скрипт, который сохранит результат шаблона в статический файл.

0
Steven Potter 15 Янв 2010 в 04:53