VBS怎么往CSV文件中写数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBS怎么往CSV文件中写数据相关的知识,希望对你有一定的参考价值。

通过VBS怎么往CSV文件中写数据,在VB上通过按钮,每按一次按钮就往CSV文件中写一次数据,每写一次写三个变量值到CSV文件单元格中,并且在同一行不同的单元格中。 代码应该怎么写???

参考技术A csv叫“逗号分隔值”,顾名思义,用逗号来分隔每列的值,所以你要分列的话只要在每个字段后面加个逗号就可以了。
如38行,改成ts.writeline("Date,Material,Presure,Temperature")
41行也只要将分号改成逗号就行了。

在 python csv 文件中写一个列表,每个列表一个新行

【中文标题】在 python csv 文件中写一个列表,每个列表一个新行【英文标题】:Write a list in a python csv file, one new row per list 【发布时间】:2015-04-01 08:44:33 【问题描述】:

我有以下源代码,我试图在 csv 文件中编写一个列表。我需要将每个新列表写入此 csv 文件的新行中。源代码如下:

import csv
list1=[55,100,'dir1/dir2/dir3/file.txt',0.8]

resultFile = open("output.csv",'wa')
wr = csv.writer(resultFile, dialect='excel')
wr.writerow(list1)
resultFile.close()

问题是每次我运行代码时它都不会在换行符中插入 list1。

在matlab中这很容易,我只需要使用带有'-append'参数的dlmwrite。

但是如何在 Python 中做到这一点?

【问题讨论】:

在最后做close()你的文件 或者,使用with open('output.csv', 'wa') as resultFile: @BhargavRao 我忘了粘贴我关闭文件的代码部分。我更新了它。还是不行。我更新了上面的代码。 【参考方案1】:

以追加模式打开文件。

import csv
list1=[58,100,'dir1/dir2/dir3/file.txt',0.8]

with open("output.csv", "a") as fp:
    wr = csv.writer(fp, dialect='excel')
    wr.writerow(list1)

更多档案open modes

尝试以下操作:-

>>> with open('test1','wb') as f: f.write('test')
... 
>>> with open('test1','ab') as f: f.write('koko')
... 
>>> with open('test1','rb') as f: f.read()
... 
'testkoko'
>>> with open('test1','wa') as f: f.write('coco')
... 
>>> with open('test1','rb') as f: f.read()
... 
'coco'
>>> 

来自link

模式:说明

    r:打开一个只读文件。文件指针位于文件的开头。这是默认模式。 rb:以二进制格式打开一个只读文件。文件指针位于文件的开头。这是默认模式。 r+:打开一个文件进行读写。文件指针将位于文件的开头。 rb+:以二进制格式打开一个文件进行读写。文件指针将位于文件的开头。 w:打开一个仅供写入的文件。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件进行写入。 wb:打开一个仅以二进制格式写入的文件。如果文件存在,则覆盖文件。如果文件不存在,则创建一个新文件进行写入。 w+:打开一个文件进行读写。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件进行读写。 wb+:打开一个文件,以二进制格式写入和读取。如果文件存在,则覆盖现有文件。如果文件不存在,则创建一个新文件进行读写。 a:打开一个文件进行追加。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于附加模式。如果文件不存在,则创建一个新文件进行写入。 ab:打开一个文件以二进制格式附加。如果文件存在,则文件指针位于文件末尾。也就是说,文件处于附加模式。如果文件不存在,则创建一个新文件进行写入。 a+:打开一个文件以进行追加和读取。如果文件存在,则文件指针位于文件末尾。该文件以附加模式打开。如果文件不存在,则创建一个新文件进行读写。 ab+:打开一个文件,以二进制格式追加和读取。如果文件存在,则文件指针位于文件末尾。该文件以附加模式打开。如果文件不存在,则创建一个新文件进行读写。

【讨论】:

它有效,谢谢。我真的猜我以前做过这个但没有工作。还是谢谢。 此外,如csv.writer 的文档中所述,文件必须在不同的平台上使用b 标志打开。 @CristianCiupitu 我尝试了您的代码,但是它不是在它下面的行中写入每个新行,而是在下面的两个中写入。所以最后我总是在两行数据之间有一个空行。我该如何解决? @Euler_Salter:你能把代码或部分代码发给我吗? 感谢您的详细解释【参考方案2】:

如果您使用 Python 3.x,请更改您的代码:

import csv

list1 = [58,100,'dir1/dir2/dir3/file.txt',0.8]

with open("output.csv", "a", newline='') as fp:
    wr = csv.writer(fp, dialect='excel')
    wr.writerow(list1)

添加newline='' 可以帮助您避免获得额外的新行、两行之间的空行与数据。

【讨论】:

以上是关于VBS怎么往CSV文件中写数据的主要内容,如果未能解决你的问题,请参考以下文章

从 vbs 导入 csv 文件到 mysql 和访问时遇到问题

vb如何实时读取csv文件?

csv如何转化为excel

java处理csv文件

在 python csv 文件中写一个列表,每个列表一个新行

csv在python中写数组到文件,如何删除附加行[复制]