在 python csv 文件中写入一个列表,每个列表一个新行
Write a list in a python csv file, one new row per list
我有以下源代码,我试图在其中将列表写入 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 中执行此操作?
以附加模式打开文件。
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+:打开一个文件,以二进制格式追加和读取。如果文件存在,文件指针位于文件末尾。该文件以追加模式打开。如果文件不存在,则创建一个新文件进行读写。
如果您使用 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=''
可以帮助您避免出现额外的新行、两行数据之间的空行。
我有以下源代码,我试图在其中将列表写入 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 中执行此操作?
以附加模式打开文件。
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+:打开一个文件,以二进制格式追加和读取。如果文件存在,文件指针位于文件末尾。该文件以追加模式打开。如果文件不存在,则创建一个新文件进行读写。
如果您使用 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=''
可以帮助您避免出现额外的新行、两行数据之间的空行。