私は、DBF ファイルを開く Python スクリプトに取り組んでおり、そこから内容のテキスト出力 (.txt または .csv) を作成します。
出力ファイルを書き出すことができましたが、データベース フィールドの 1 つにある空白文字を置き換える必要があります (これは英国の自動車登録番号です。たとえば、「AB09CDE」として出力するには「AB09 CDE」が必要です)。ネストされたリストのように見えるため、これを行う方法を理解できませんでした。以下のコードでは、フィールドは rec[7] です。
if __name__ == '__main__':
import sys, csv
from cStringIO import StringIO
from operator import itemgetter
# Read a database
filename = 'DATABASE.DBF'
if len(sys.argv) == 2:
filename = sys.argv[1]
f = open(filename, 'rb')
db = list(dbfreader(f))
f.close()
fieldnames, fieldspecs, records = db[0], db[1], db[2:]
# Remove some fields that we don't want to use...
del fieldnames[0:]
del fieldspecs[0:]
#Put the relevant data into the temporary table
records = [rec[7:8] + rec[9:12] + rec[3:4] for rec in records]
# Create outputfile
output_file = 'OUTPUT.txt'
f = open (output_file, 'wb')
csv.writer(f).writerows(records)
これにより、出力された各値の末尾に多くのスペースも追加されます。どうすればこれらを取り除くことができますか?
私はPythonにかなり慣れていないので、どんなガイダンスも感謝して受け取ります!