python導(dǎo)入csv文件出現(xiàn)SyntaxError問(wèn)題分析
背景
np.loadtxt()用于從文本加載數(shù)據(jù)。
文本文件中的每一行必須含有相同的數(shù)據(jù)。
***
loadtxt(fname,dtype=<class'float'>,comments='#',delimiter=None,converters=None,skiprows=0,usecols=None,unpack=False,ndmin=0)
fname要讀取的文件、文件名、或生成器。
dtype數(shù)據(jù)類(lèi)型,默認(rèn)float。
comments注釋。
delimiter分隔符,默認(rèn)是空格。
skiprows跳過(guò)前幾行讀取,默認(rèn)是0,必須是int整型。
usecols:要讀取哪些列,0是第一列。例如,usecols=(1,4,5)將提取第2,第5和第6列。默認(rèn)讀取所有列。
unpack如果為True,將分列讀取。
問(wèn)題
今天在ipython中讀取文件時(shí),
代碼為:
import numpy as np
x = np.loadtxt('C:\Users\sunshine\Desktop\scjym_3yNp3Gj\源數(shù)據(jù)\000001.csv',delimiter= ',',skiprows=(1),usecols= (1,4,6),unpack= False)
出現(xiàn)下面的錯(cuò)誤:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
編碼錯(cuò)誤,經(jīng)搜索問(wèn)題,發(fā)現(xiàn)采用如下解決方案:
r'C:\Users\expoperialed\Desktop\Python' 'C:\\Users\\expoperialed\\Desktop\\Python' 'C:/Users/expoperialed/Desktop/Python'
看到這里我就明白自己錯(cuò)在哪兒了。
書(shū)寫(xiě)字符串有幾個(gè)需要注意的地方:
1.長(zhǎng)字符串
非常長(zhǎng)的字符串,跨多行時(shí),可以使用三個(gè)引號(hào)代替普通引號(hào)。
即:
print('''This is a very long string.
it will continue.
and it's not over yet.
''hello,world''
still here.'''
可以注意到,使用這種方式時(shí),字符串中可以同時(shí)使用單引號(hào)和雙引號(hào)
2.原始字符串
即print(r'c:\nwhere')
反斜線有特殊的作用,它會(huì)轉(zhuǎn)義,可以幫助我們?cè)谧址屑尤雴我?hào)和雙引號(hào)等不能直接加入的內(nèi)容。
\n,換行符,可以存放于字符串中。
以上代碼塊中,很顯然我們是想要一個(gè)路徑,而如果不使用原始字符串,我們就會(huì)得到
c:where。
對(duì),為了防止這種情況,我們還可以使用反斜線進(jìn)行轉(zhuǎn)義,但是如果這個(gè)路徑很長(zhǎng),就像本文的路徑:
C:\\\Users\\\sunshine\\\Desktop\\\scjym_3yNp3Gj\\\源數(shù)據(jù)\\\000001.csv
使用雙斜線,就會(huì)很麻煩。
這時(shí),我們就可以用原始字符串。
原始字符串以r開(kāi)頭。
原始字符串結(jié)尾不能是反斜線。
如要結(jié)尾用反斜線,print(r'C:\Programfiles\foo\bar''\\')即C:\Programfiles\foo\bar\
在常規(guī)python字符串中,\U字符組合表示擴(kuò)展的Unicode代碼點(diǎn)轉(zhuǎn)義。
因此這里出現(xiàn)了錯(cuò)誤。
python導(dǎo)入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]
這三種方法中最后一種最簡(jiǎn)單,不過(guò)花費(fèi)時(shí)間比較長(zhǎng)一點(diǎn),第一種最麻煩,不過(guò)用時(shí)最短。這個(gè)可以通過(guò)ipython中的magic函數(shù)%%timeit來(lái)看。
總結(jié)
以上就是本文關(guān)于python導(dǎo)入csv文件出現(xiàn)SyntaxError問(wèn)題分析的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專(zhuān)題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!
相關(guān)文章
pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換)
這篇文章主要介紹了pyCharm 設(shè)置調(diào)試輸出窗口中文顯示方式(字符碼轉(zhuǎn)換),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
python中68個(gè)內(nèi)置函數(shù)的總結(jié)與介紹
這篇文章主要介紹了python中68個(gè)內(nèi)置函數(shù)的總結(jié)與介紹,需要的朋友可以參考下2020-02-02
selenium學(xué)習(xí)教程之定位以及切換frame(iframe)
這篇文章主要給大家介紹了關(guān)于selenium學(xué)習(xí)教程之定位以及切換frame(iframe)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Python實(shí)現(xiàn)文件按照日期命名的方法
這篇文章主要介紹了Python實(shí)現(xiàn)文件按照日期命名的方法,涉及Python針對(duì)文件的遍歷、讀寫(xiě)及時(shí)間操作相關(guān)技巧,需要的朋友可以參考下2015-07-07
關(guān)于networkx返回圖的鄰接矩陣問(wèn)題
這篇文章主要介紹了關(guān)于networkx返回圖的鄰接矩陣問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Python爬蟲(chóng)使用實(shí)例wallpaper問(wèn)題記錄
本文介紹解決中文亂碼的方法,以及Python爬蟲(chóng)處理數(shù)據(jù)、圖片URL的技巧,包括使用正則表達(dá)式處理字符串、URL替換等,還涉及單線程與多線程的應(yīng)用場(chǎng)景,如電腦壁紙和手機(jī)壁紙爬取,適合進(jìn)行Web數(shù)據(jù)抓取和處理的開(kāi)發(fā)者參考2024-09-09
Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能實(shí)例
百度AI功能還是很強(qiáng)大的,百度AI開(kāi)放平臺(tái)真的是測(cè)試接口的天堂,免費(fèi)接口很多,當(dāng)然有量的限制,但個(gè)人使用是完全夠用的,下面這篇文章主要給大家介紹了關(guān)于Python調(diào)用百度AI實(shí)現(xiàn)圖片上文字識(shí)別功能的相關(guān)資料,需要的朋友可以參考下2021-09-09
Python設(shè)計(jì)模式之門(mén)面模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之門(mén)面模式,簡(jiǎn)單描述了門(mén)面模式的概念、原理,并結(jié)合實(shí)例形式給出了Python定義與使用門(mén)面模式的具體操作技巧,需要的朋友可以參考下2018-01-01
python利用socket實(shí)現(xiàn)客戶端和服務(wù)端之間進(jìn)行通信
這篇文章主要介紹了python實(shí)現(xiàn)客戶端和服務(wù)端之間進(jìn)行通信,文章通過(guò)python利用socket展開(kāi)詳情介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05

