我想使用 Pyton 2.7 删除 csv 文件中的最后 16 行和前 16 行。
我的代码有什么问题?为什么不删除这些行?
import urllib2
import unicodecsv as csv
import os
import sys
import io
import time
import datetime
import pandas as pd
from bs4 import BeautifulSoup
import sys
import re
def to_2d(l,n):
return [l[i:i+n] for i in range(0, len(l), n)]
f = open('air.txt', 'r')
x = f.readlines()
filename=r'output.csv'
resultcsv=open(filename,"wb")
output=csv.writer(resultcsv, delimiter=';',quotechar = '"', quoting=csv.QUOTE_NONNUMERIC, encoding='latin-1')
maindatatable = to_2d(x, 4)
print maindatatable
output.writerows(maindatatable)
with open('output.csv', 'rb') as csvfile:
lines = csvfile.readlines()
lines = lines[16:-16]
cWriter = csv.writer(csvfile, delimiter=',')
for line in lines:
cWriter.writerow(line)
resultcsv.close()
对不起,如果这看起来是一个非常简单的问题,但我是 python 新手,在这方面的任何帮助将不胜感激,谢谢!
我相信问题是这一行:
cWriter = csv.writer(csvfile, delimiter=',')
该文件已以读取模式打开。您无法在此文件上初始化 csv 编写器(它未打开用于写入)。
要修复,您可以声明另一个with
块并设置另一个上下文管理器。
with open('output.csv', 'rb') as csvfile:
lines = csvfile.readlines()
cReader = csv.reader(csvfile)
lines = cReader.readlines()[16:-16]
with open('output.csv', 'wb') as csvfile:
cWriter = csv.writer(csvfile)
cWriter.writerows(lines)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句