为什么用Python向文件中写一个长字符串会导致字符串变成科学计数法?

时间:2019-05-13 16:40:32

标签: python parsing

,感谢您的阅读。我有一个python脚本,可以从一个文件读取数据并将其写入另一个文件。其中一个字段包含ID,该ID可以是很长的数字,而且字母字符混在其中。有些字段的某个位置也混有句点。

因此,ID可以看起来像数字,字母和句点的任意组合。

例如,一个ID可能类似于:

  • 5533443323BBG1234567890B5ABA49D1C074111C
  • 11111111111.222222222222
  • ABC123456780000000000000

我的问题是,一些看起来像第一个项目符号的ID在写入文件后会以科学计数法表示。

因此,在脚本运行时,我将打印出该值,然后得到正确的东西:

  • 5533443323BBG1234567890B5ABA49D1C074111C

但是当我在文件(notepad ++或excel)中检查它时,它看起来像:

  • 5.5334E + 37

除了将它作为字符串写入文件外,我没有对该字段做任何其他处理。我已经使用type()命令验证了它是str类型。

有人知道会发生什么吗?

输入文件只是一个包含许多列的csv,其中之一就是我需要的ID。

这是我的代码的摘录:

allIDs = {}
with open(report, "r") as reportFile: 

            reportText = csv.reader(reportFile, quotechar='"', delimiter=",", quoting=csv.QUOTE_ALL,skipinitialspace=True)
            for cols in reportText:

                ID = dict["ID"]
                date = dict["date"]
                product = dict["product"]
                price = dict["price"]

                allIDs[ID] = [[date, ID, product,price]]


                with open("output_file.csv", "w", newline ="") as writefile:
                   writer = csv.writer(writefile, quoting=csv.QUOTE_ALL)
                   writer.writerow(["date", "ID", "product", "price"])

                for key,value in allIDs.items():
                    writer.writerow(value)

0 个答案:

没有答案