Python 如何替换csv文件特定单元格中的值?
我想制作一个python脚本,它有一个计数器,用于替换CSV文件中特定单元格的当前值 我的代码是:Python 如何替换csv文件特定单元格中的值?,python,csv,Python,Csv,我想制作一个python脚本,它有一个计数器,用于替换CSV文件中特定单元格的当前值 我的代码是: with open(ctlLst[-1], 'rb') as csvfile: csvReader = csv.reader(csvfile) csvReader.next() for row in csvReader: if row[6]>counter: newCTLcount=int(row[6])-counter
with open(ctlLst[-1], 'rb') as csvfile:
csvReader = csv.reader(csvfile)
csvReader.next()
for row in csvReader:
if row[6]>counter:
newCTLcount=int(row[6])-counter
#need to replace cell row[6]
该文件如下所示:
InterfaceCode InterfaceSeqID OperatorCode CreationDateTime MintransactionDateTime MaxtransactionDateTime NoOfRows ControlFileName DataFileName
201 1170 30 20161005 04:30:27 20161004 06:55:56 20161005 03:08:37 8696 CTL_TripEventAndAlert_30_20161004.CSV TripEventAndAlert_30_20161004.CSV
在本例中,我需要用一个新值(newCTLcount)替换8696的值(在第2行单元格6上)。最可能的做法是在读取/解析时写入以节省内存
with open('out.csv', 'wb') as outfile:
with open(ctlLst[-1], 'rb') as csvfile:
csvReader = csv.reader(csvfile)
csvWriter = csv.writer(outfile)
csvReader.next()
for row in csvReader:
row[6] = int(row[6]) # assumed as int
if row[6] > counter:
row[6] -= counter
outfile.writerow(row)
对于Python2,请参见,最可能的做法是边读边写以节省内存
with open('out.csv', 'wb') as outfile:
with open(ctlLst[-1], 'rb') as csvfile:
csvReader = csv.reader(csvfile)
csvWriter = csv.writer(outfile)
csvReader.next()
for row in csvReader:
row[6] = int(row[6]) # assumed as int
if row[6] > counter:
row[6] -= counter
outfile.writerow(row)
关于Python 2,请参见获得它
rowData=[]
with open(ctlLst[-1], 'rb') as csvfile:
csvReader = csv.reader(csvfile)
for row in csvReader:
rowData.append(row)
rowData[1][6]=int(rowData[1][6])-counter
print ("new Row data count is " + str(rowData[1][6]))
谢谢明白了
rowData=[]
with open(ctlLst[-1], 'rb') as csvfile:
csvReader = csv.reader(csvfile)
for row in csvReader:
rowData.append(row)
rowData[1][6]=int(rowData[1][6])-counter
print ("new Row data count is " + str(rowData[1][6]))
谢谢你的最终目标是什么?在内存或磁盘上更改表?在磁盘上…这只是部分代码……正是我所需要的,你应该考虑在你读它的时候写数据。你的最终目标是什么?在内存中或磁盘上有改变的表?在磁盘上…这只是部分代码……对于我所需要的,你应该考虑在你读它的时候写数据。这如何改变磁盘上的任何东西?我想我误解了你对光盘的意思…此代码保存了光盘上更改后的CSV文件。。。这就是我的意思,你知道吗?上面的代码以读取模式打开一个文件,并对其读取的内容进行更改。它不会写入/保存任何内容。这会如何改变磁盘上的任何内容?我想我误解了您对磁盘的含义。。。此代码保存了光盘上更改后的CSV文件。。。这就是我的意思,你知道吗?上面的代码以读取模式打开一个文件,并对其读取的内容进行更改。它不会写入/保存任何内容。