我正在使用Python的CSV模块,特别是编写器.我的问题是如何将双引号添加到列表中的单个项目并让编写器以与print语句相同的方式编写字符串?
例如:
import csv
#test "data"
test = ['item1','01','001',1]
csvOut = csv.writer(open('file.txt','a')) #'a' used for keeping past results
test[1] = '"'+test[1]+'"'
print test
#prints: ['item1', '"01"', '001', 1]
csvOut.writerow(test)
#written in the output file: item1,"""01""",001,1
#I was expecting: item1,"01",001,1
del csvOut
Run Code Online (Sandbox Code Playgroud)
我累了添加一个quoting = csv.QUOTE_NONE选项,但这引发了一个错误.我猜这与许多csv方言有关,我希望避免过多地挖掘它.
回想起来,我可能已经构建了我的初始数据集,并且可能避免了这种情况的需要,但此时好奇心真的让我变得更好(这是一个简化的例子):你如何保持书面输出不添加这些额外的报价?
我正在寻找一种希望简单的方法来找到数字中最不重要的数字(浮点数或整数).
例如:
101 - > 1
101.2 - > 0.2
1.1003 - > 0.0003
像10,100,1000等的情况稍微不那么相关,尽管我对此感兴趣.
我并不特别关心这种格式,所以如果以更实际的方式确定结果更有意义,那就更自如了.
例如:
101.2 - > 0.1或10 ^ -1(相关功率/指数均为-1)很好.
对于其他背景,我想做的是:
假设我有一个数字31.6我希望能够将其转换为31.5(将最低有效数字减少1).让我说我有16号,我想把它变成15(同样的想法).如果我有数字100,我仍然想把它变成99,但我可以弄清楚那里的情况处理(没有指定100.0,我认为1是最低有效数字,减少1给你0,这不是我想要的是).这反过来又与手动操作数据范围中的类中断有关(尽管主题不同).
显示我的作业: 这看起来很有前途(the leastSigDigit部分),但它返回的数字没有任何(数学)引用数字的力量(我希望也避免大量的字符串转换).
这是我搜索stackoverflow时出现的但似乎没有帮助(如果我使用错误的术语/搜索短语我提前道歉)