python读取csv文件的路径(怎么用python读取csv文件)
怎么用python读取csv数据
这两天刚好看到,Python CookBook上有说到。这里是三种读取csv的方法。
文件格式是这样的
Region,DATE_,RAW_ACU
zh_ch,Jan 27 2017,208172
import?csv
from?collections?import?namedtuple
#?with?open('data.csv')?as?f:
#?????f_csv?=?csv.reader(f)
#?????headers?=?next(f_csv)
#?????for?row?in?f_csv:
#?????????#?print(row)
#?????????print(row[0],?row[1])
#?with?open('data.csv',?encoding='utf-8-sig')?as?f:
#?????f_csv?=?csv.reader(f)
#?????headers?=?next(f_csv)
#?????print(headers)
#?????Row?=?namedtuple('Row',?headers)
#?????for?r?in?f_csv:
#?????????row?=?Row(*r)
#?????????print(row.Region,?row.DATE_)
with?open('data.csv',?encoding='utf-8-sig')?as?f:
????f_csv?=?csv.DictReader(f)
????for?row?in?f_csv:
????????print(row['DATE_'],?row)
具体可以看这个文档。。
python保存csv文件到桌面
python保存csv文件到桌面:
1、虽然python中有内置模块能够操作csv文件,不过pandas这个第三方库在处理速度和代码编写方面都是优于内置模块了,同时也需要将os模块导入进来判断一下保存csv文件的路径是否存在或者有同名文件。
2、模块导入完成之后要用变量来保存csv文件路径了,然后定义两个空集合,作用是保存列数据,再使用listdir()方法将文件路径里面的所有文件和文件夹都获取到并用for循环迭代。
3、在for循环代码块里面向一个列表对象内添加文件名,然后定义一个参数并赋值为aa,然后将这个变量添加到另一个列表中,循环迭代完毕之后这两个列表内就有数据了。
4、调用zip()函数将这两个列表合并在一起并且使用list()方法再次转为列表,然后用pandas库中的DataFrame()方法将data参数表示的数据源设置为该列表对象,并指定两个列名,最后用to_csv()方法将其保存起来即可。
python中怎么读取csv文件
Python读取CSV文件方法如下:
如下是一个CVS文件
使用Python打开CSV可以直接使用open函数打开,然后使用reader函数读取内容,实现代码如下:
运行结果如下:
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python中怎么读取csv文件的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
怎么用python3.5.1读取CSV文件
假设csv文件地址为:E:\test.csv,则
f=open('E:\\test.csv')
lines=f.readlines() #lines就是csv读出的表格了
python读取csv文件报错position4
一、文件路径报错
因为在python之中文件路径都是以字符串类型出现的,所以在字符串对象的编写语法本身没有错误时,那么出现报错的唯一原因就是这个文件路径找不到文件。这种问题主要经常出现在已经发布部署到服务器上的python程序,因为在开发时很多时候都是用绝对路径来读取文件的,环境改变之后从磁盘根目录读取的绝对路径就是无法使用了。
二、解决方法
那么正确的做事实际上就是先导入os模块,然后调用getcwd()方法查看当前python程序,也就是py脚本文件处在哪个文件路径之中,代码示例如下所示:
import os
os.getcwd()
print(os.getcwd())
然后再打开文件夹查看一下所要读取的csv文件在哪个文件目录,然后在文件资源管理器内打开csv文件所在的文件目录并将其复制后粘贴到python文件所在的同级目录下,接下来就可以使用绝对不会出错的相对路径来读取该csv文件了。只需要写上csv文件的名称就可以来将其在python程序内打开并读取,代码示例如下所示:
import pandas as pd
train = pd.read_csv
请教PYTHON读取CSV文件方法
#!/usr/bin/python
#?-*-?coding:?UTF-8??-*-
from?Log?import?Loginfo
import?cgi,?os,?csv,?sys,?re
reload(sys)
sys.setdefaultencoding('utf8')
print?"Content-Type:?text/html?charset=utf-8?\n"
fileitem?=?''
def?get_cgi_file():
????''''''
????global?fileitem,device_id,maxDeviceID,maxDriverID,channelid,ChannelDeviceType
????form?=?cgi.FieldStorage()
????#?获取文件名
????fileitem?=?form['filename1']
????#?检测文件是否上传
????if?fileitem.filename:
????????#?去掉文件路径,获取文件名称
????????fn?=?os.path.basename(fileitem.filename)
????????open(global_var.uploadfile_path,?'wb').write(fileitem.file.read())
????????#message?=?'文件"'?+?fn?+?'"?上传成功!'
????????#print?message
????else:
????????message?=?'没有文件上传!'
????????print?message
def?convert_gbk2utf8():
????data_list?=?[]
????fd?=?open(global_var.uploadfile_path,?'rb')
????csvfd?=?csv.reader(fd)
????for?c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14?in?csvfd:
????????c1_u?=?c1.decode('gb2312').encode('utf-8')
????????c2_u?=?c2.decode('gb2312').encode('utf-8')
????????c3_u?=?c3.decode('gb2312').encode('utf-8')
????????c4_u?=?c4.decode('gb2312').encode('utf-8')
????????c4_u?=?c4.decode('gb2312').encode('utf-8')
????????c5_u?=?c5.decode('gb2312').encode('utf-8')
????????c6_u?=?c6.decode('gb2312').encode('utf-8')
????????c7_u?=?c7.decode('gb2312').encode('utf-8')
????????c8_u?=?c8.decode('gb2312').encode('utf-8')
????????c9_u?=?c9.decode('gb2312').encode('utf-8')
????????c10_u?=?c10.decode('gb2312').encode('utf-8')
????????c11_u?=?c11.decode('gb2312').encode('utf-8')
????????c12_u?=?c12.decode('gb2312').encode('utf-8')
????????c13_u?=?c13.decode('gb2312').encode('utf-8')
????????c14_u?=?c14.decode('gb2312').encode('utf-8')
????????data_row_list?=?[c1_u,c2_u,c3_u,c4_u,c5_u,c6_u,c7_u,c8_u,c9_u,c10_u,c11_u,c12_u,c13_u,c14_u]
????????data_list.append(data_row_list)
????fd.close()
????#log.write_debug(data_list)
????return?data_list
def?analy_csv_file(data_list):
????for?rownum?in?range(len(data_list)):
????????????if?rownum?==?0:
????????????????attrib?=?data_list[rownum]
????????????else:
????????????????for?i?in?range(len(attrib)):
????????????????????#这里循环取数据,依据是列名
????????????????????if?attrib[i]?==?'你的列名':
????????????????????????print?data_list[rownum][i]
if?__name__?==?'__main__':
????log?=?Loginfo.Loginfo()
????get_cgi_file()
????try:
????????data_list?=?convert_gbk2utf8()
????except?Exception?as?e:
????????print("正在导入的表格列数不对,请检查!")
????????deleteDevice()
删了一些函数,这样应该可以看得懂吧,c14_u是列,有多少列就多少个,这是转换编码。analy_csv_file(data_list)里面对拿到的文件做处理