python导入csv文件出现SyntaxError问题分析

作者:我的前进日志 时间:2023-12-12 04:29:57 

背景

np.loadtxt()用于从文本加载数据。

文本文件中的每一行必须含有相同的数据。

***

loadtxt(fname,dtype=<class'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0)

fname要读取的文件、文件名、或生成器。

dtype数据类型,默认float。

comments注释。

delimiter分隔符,默认是空格。

skiprows跳过前几行读取,默认是0,必须是int整型。

usecols:要读取哪些列,0是第一列。例如,usecols=(1,4,5)将提取第2,第5和第6列。默认读取所有列。

unpack如果为True,将分列读取。

问题

今天在ipython中读取文件时,

代码为:


import numpy as np
x = np.loadtxt('C:\Users\sunshine\Desktop\scjym_3yNp3Gj\源数据\000001.csv',delimiter= ',',skiprows=(1),usecols= (1,4,6),unpack= False)

出现下面的错误:


SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

编码错误,经搜索问题,发现采用如下解决方案:


r'C:\Users\expoperialed\Desktop\Python'
'C:\\Users\\expoperialed\\Desktop\\Python'
'C:/Users/expoperialed/Desktop/Python'

看到这里我就明白自己错在哪儿了。

书写字符串有几个需要注意的地方:

1.长字符串

非常长的字符串,跨多行时,可以使用三个引号代替普通引号。

即:


print('''This is a very long string.
it will continue.
and it's not over yet.
''hello,world''
still here.'''

可以注意到,使用这种方式时,字符串中可以同时使用单引号和双引号

2.原始字符串

print(r'c:\nwhere')

反斜线有特殊的作用,它会转义,可以帮助我们在字符串中加入单引号和双引号等不能直接加入的内容。

\n,换行符,可以存放于字符串中。

以上代码块中,很显然我们是想要一个路径,而如果不使用原始字符串,我们就会得到

c:where。

对,为了防止这种情况,我们还可以使用反斜线进行转义,但是如果这个路径很长,就像本文的路径:

C:\\\Users\\\sunshine\\\Desktop\\\scjym_3yNp3Gj\\\源数据\\\000001.csv

使用双斜线,就会很麻烦。

这时,我们就可以用原始字符串。

原始字符串以r开头。

原始字符串结尾不能是反斜线。

如要结尾用反斜线,print(r'C:\Programfiles\foo\bar''\\')C:\Programfiles\foo\bar\

在常规python字符串中,\U字符组合表示扩展的Unicode代码点转义。

因此这里出现了错误。

python导入csv文件的三种方法


#原始的方式
lines = [line.split(',') for line in open('iris.csv')]
df = [[float(x) for x in line[:4]] for line in lines[1:]]
#使用numpy包
import numpy as np
lines = np.loadtxt('iris.csv',delimiter=',',dtype='str')
df = lines[1:,:4].astype('float')
#使用pandas包
import pandas as pd
df = pd.read_csv('iris.csv')
df=df.ix[:,:4]

这三种方法中最后一种最简单,不过花费时间比较长一点,第一种最麻烦,不过用时最短。这个可以通过ipython中的magic函数%%timeit来看。

来源:http://www.cnblogs.com/sunshinewang/p/6850825.html

标签:python,csv文件
0
投稿

猜你喜欢

  • Python中的面向对象编程详解(上)

    2021-10-12 14:33:45
  • javascript 实现的完全兼容鼠标滚轴缩放图片的代码

    2024-04-10 16:09:43
  • python使用tkinter实现透明窗体

    2022-09-10 00:58:40
  • TensorFlow 合并/连接数组的方法

    2021-08-19 16:28:35
  • pandas to_excel 添加颜色操作

    2021-07-19 19:49:57
  • Python安装Graphviz 超详细图文教程

    2023-02-27 16:11:18
  • javascript生成随机大小写字母的方法

    2024-04-30 09:53:33
  • Python中Yield的基本用法

    2021-08-30 15:34:55
  • Python正规则表达式学习指南

    2021-04-11 15:21:16
  • Python random模块制作简易的四位数验证码

    2023-06-29 07:41:50
  • numpy系列之数组合并(横向和纵向)

    2023-11-13 07:13:21
  • Python爬取用户观影数据并分析用户与电影之间的隐藏信息!

    2022-09-09 23:19:47
  • python批量修改文件名的示例

    2023-11-04 13:50:39
  • python中pip安装库时出现Read timed out解决办法

    2023-06-15 22:20:44
  • python scipy.misc.imsave()函数的用法说明

    2022-11-01 13:04:24
  • IE和Firefox的js兼容性整理

    2007-11-21 19:40:00
  • Python基础之输入,输出与高阶赋值详解

    2023-05-21 10:00:32
  • 将Python脚本打包成exe文件

    2021-06-08 12:21:55
  • Golang 编译成DLL文件的操作

    2024-05-09 09:55:30
  • python语音识别实践之百度语音API

    2021-11-26 19:06:40
  • asp之家 网络编程 m.aspxhome.com