python处理csv文件案例_python3读取csv文件任意行列代码实例
讀取每一行
reader = csv.reader(f) 此時reader返回的值是csv文件中每行的列表,將每行讀取的值作為列表返回
#讀取每一行
filename='D:\\file_information1.csv'
import csv
with open(filename,newline = '',encoding = 'utf-8') as f: #參數encoding =
'utf-8'防止出現亂碼
reader = csv.reader(f) #使用csv的reader()方法,創建一個reader對象
csv.reader()讀取結果是列表
for row in reader: #遍歷reader對象的每一行
print(row)
如何往csv格式文件寫入數據
1.write()函數寫入文本文件的也是字符串類型。
2.在’w’和’a’模式下,如果你打開的文件不存在,那么open()函數會自動幫你創建一個
3.'w’寫入模式會給你強行清空掉文件,然后再給你寫入。如果你只想增加東西,而不想完全覆蓋掉原文件的話,就要使用’a’模式,表示append,你學過,它是追加的意思。
file1 = open('D:\\new\\abc.txt','a',encoding='utf-8')
file1.write('張無忌\n')
file1.write('宋青書\n')
file1.close()
enumerate()
enumerate() 函數用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標 ,一般用在 for
循環當
以下是 enumerate() 方法的語法: enumerate(sequence, [start=0])
sequence – 一個序列、迭代器或其他支持迭代對象。
start – 下標起始位置。
返回 enumerate(枚舉) 對象
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
print(list(enumerate(seasons))) # [(0, 'Spring'), (1, 'Summer'), (2,
'Fall'), (3, 'Winter')]
print(list(enumerate(seasons, start=1)) ) # [(1, 'Spring'), (2, 'Summer'),
(3, 'Fall'), (4, 'Winter')]
# 普通for循環:
i = 0
seq = ['one', 'two', 'three']
for element in seq:
print( i, seq[i])
i +=1
'''
one
two
three
'''
# for 循環使用 enumerate
seq1 = ['one', 'two', 'three']
for j, element in enumerate(seq1):
print (j, element)
'''
one
two
three
'''
獲取文件的編碼方式
import chardet
def get_file_code(file_path):
with open(file_path, 'rb') as f:
data = f.read()
print('獲取到的CSV文件編碼為:%s' % (chardet.detect(data)['encoding']))
return chardet.detect(data)['encoding']
file_path = r'D:\\file_information1.csv'
get_file_code(file_path)
判斷文件的編碼方式
f = open("D:\\file_information1.csv","rb")#二進制格式讀文件
i = 0
while True:
print(i)
line = f.readline()
if not line:
break
else:
try:
# print(line)
# print(line.decode('utf8'))
line.decode('utf8')
#為了暴露出錯誤,最好此處不print
except:
print(str(line))
i += 1
讀取首行
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f: #自行先判斷文件的編碼方式
read=f.readlines()
for index,info in enumerate(read):
if index ==0: #這里判斷
#這里輸出的是字符串類型
print(info)
讀取首行之外的所有行
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=f.readlines()
for index,info in enumerate(read):
if index !=0: #這里判斷
print(info)
讀取前10行鄭州婦科醫院 http://m.zyfuke.com/
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=f.readlines()
for index,info in enumerate(read):
if index <10: #這里為索引,是 int 轉型
print(index,info)
讀取任意行,可根據index索引
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=f.readlines()
for index,info in enumerate(read):
print(index) #自己根據index的數字判斷
讀取第一和第二列
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
#這里輸出的是列表類型
print(info[:2]) #[:2]代表的是讀取第0列和第1列 ,第2列不包括
讀取除首行之外的第一,第二列
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
if index!=0: #這里加判斷
print(info[:2])
讀取最后兩列
import csv
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
print(info[-2:])
讀第一行的第三列
filename='D:\\file_information1.csv'
with open(filename,'r',encoding='utf-8')as f:
read=csv.reader(f)
for index,info in enumerate(read):
if index==0:
print(info[2:3])
總結
以上是生活随笔為你收集整理的python处理csv文件案例_python3读取csv文件任意行列代码实例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python应用中调用spark_在py
- 下一篇: npoi生成的表格数字左上角_如何用op