文字列として読み込んだデータを
文字列 → 少数 → 少数表記の文字列
のように変換して、CSVファイルに書き込むのはどうですか?
こんな感じで実現できるかと思います。
Python
1data_file = open('AAA.csv')
2data_reader = csv.reader(data_file)
3
4for row in data_reader:
5 hasou_data = [f'{float(d):f}' for d in row]
6 upload_file = open('BBB.csv','a',newline='')
7 upload_write = csv.writer(upload_file)
8 upload_write.writerow(hasou_data)
9 upload_file.close()
ただ、上記ではデータの中に少数に変換できないデータがある場合ValueErrorが発生しますので、その場合はこうなります。(例外が発生した場合は元のデータを書いておく)
Python
1data_file = open('AAA.csv')
2data_reader = csv.reader(data_file)
3
4for row in data_reader:
5 hasou_data = []
6 for d in row:
7 try:
8 new_data = f'{float(d):f}'
9 except ValueError:
10 new_data = d
11 hasou_data.append(new_data)
12
13 upload_file = open('BBB.csv','a',newline='')
14 upload_write = csv.writer(upload_file)
15 upload_write.writerow(hasou_data)
16 upload_file.close()
ただ、少数→文字列の際に桁数が丸められる可能性がありますので、最大桁数を指定したほうが良いかもしれませんね。
【補足】
の部分は
Python
1num = float(d) # d を float型に変換
2"{:f}".format(num) # num を少数表記で文字列変換
を1行で書いた感じです。
f'{}'
という書き方は Python 3.6 で導入された f-strings(f文字列)ってやつで、
{0:f}
.format(num)を
f'{num:f}'のように書けます。今回は更に
num = float(d)` も展開されて
となってます。