Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将科学符号写入文件;如何以十进制形式写入文件?_Python_Arrays_Decimal_Scientific Notation_Writetofile - Fatal编程技术网

Python将科学符号写入文件;如何以十进制形式写入文件?

Python将科学符号写入文件;如何以十进制形式写入文件?,python,arrays,decimal,scientific-notation,writetofile,Python,Arrays,Decimal,Scientific Notation,Writetofile,我在一列csv文件中有一个长长的数字列表,我正在运行以下代码(其主干由@jpp提供),以生成列表中最频繁出现的排名列表: import csv from collections import Counter from itertools import chain from io import StringIO import numpy with open('origList.csv', 'r') as infile: # define lazy reader object re

我在一列csv文件中有一个长长的数字列表,我正在运行以下代码(其主干由@jpp提供),以生成列表中最频繁出现的排名列表:

import csv
from collections import Counter
from itertools import chain
from io import StringIO
import numpy

with open('origList.csv', 'r') as infile:
    # define lazy reader object
    reader = csv.reader(open('origList.csv', 'r'))
    # flatten, convert to int, feed to Counter object
    c = Counter(map(int, chain.from_iterable(reader)))

# calculate 2000 most common items, return number and counts
print('\n'.c.most_common(2000))
numpy.savetxt("topRankers.csv", c.most_common(2000), delimiter=",")
但是cv输出文件(TopRankers.csv)的实际数字是用科学记数法而不是十进制写的,我需要后者(下面前几行的示例)。有没有办法让这一切发生?非常感谢

2.204781298301920000e+08,1.700000000000000000e+01
4.641279012832990000e+09,1.700000000000000000e+01
8.001912089290390840e+17,1.500000000000000000e+01

@david-z这对我来说似乎不是一个重复的问题。我上面展示的代码与您链接的两个答案完全不同,我不知道如何在这些线程中实现解决方案来解决我的问题。有人能就我的问题给出更具体的答案吗?谢谢。嗯,你说的不准确是对的,但我想你基本上是在问如何在使用
numpy.savetxt
时格式化输出字段,这与其他问题基本相同。特别是第一个似乎非常密切相关,您应该能够从中了解如何使用
fmt
。如果你仍然有问题,你能编辑你的问题来显示你从另一个线程尝试了什么,以及它如何不适合你吗?嘿@david-z,感谢你的快速回复。我试图通过添加fmt命令来更改上面代码中的最后一行,如下所示:numpy.savetxt(“topRankers.csv”,c.most_common(2000),delimiter=“,”,fmt='%4d”),但我得到了以下错误:AttributeError:'str'对象没有属性'c'Ah,这是一个完全不同的问题;-)不过,我认为这只是一个输入错误(否则我建议单独发布)。看看你在调用
print
的最后一行的
'\n'.c
的地方。这就解决了问题!我犯了愚蠢的错误。谢谢@david-z!