⑴ python如何刪除指定文件夾中,文件名含有特定字元的文件
在開始菜 運行 輸入 cmd 回車進入你文件所在的路徑。然後輸入 del *(1)*.*del後面有個空格。
⑵ Python路徑錯誤問題,怎麼解決
代碼是這個:
print('C:usersdesktop')
1
出現這個報錯:
SyntaxError:(unicodeerror)'unicodeescape'codeccan'tdecodebytesinposition2-3:truncatedUXXXXXXXXescape
1
「」在python中表示轉義,而」」打算將u轉義為有意義的符號,而」」並未能如願,因為沒有對應的轉義字元。這時只能報上述的錯誤SyntaxError:(unicodeerror)『unicodeescape』。應該改為「/」
即應改為:
print('C:/users/desktop')
1
也可以改為:
print(r'C:usersdesktop')
1
在字元串前加個r是為了告訴編譯器這個string是個rawstring,不要轉義~
⑶ 幾個Python題目
1.【選擇】下面哪個選項不是定義列表的正確方式?(D)
D.myList4=2,3,4,5
答案解析:這是定義元組的方式,而不是列表
2.【選擇】根據下面表達式,a的值是:(C)
C.loWo
3.【填空】請寫出如何切片myList[]的倒數第3~5位。
myList[-3:-5]
4.【判斷】列表內元素的下標是從0開始的。(√)
5.【選擇】下列Python表達式可以將列表反向並改變原列表值的是:(D)
D.myList.reverse()
答案解析:切片會生成新的列表;reversed只是生成新的迭代器;只有list.reverse()會對原表的值進行改變
-----------
1.【判斷】Python語句「x="a","b","c"」中,x是一個元組。(√)
2.【選擇】執行下列Python語句會報錯的是:(A)
A.myTuple[3]=30
答案解析:元組是immutable(不可變)的,所以不能改變元組的值
3.【填空】使用Python內置函數,計算元組myTuple的語句是:
sum(myTuple)
4.【選擇】下列關於Python的描述錯誤的是:(C)
C.對元組內部元素進行排序使用的是sort()
答案解析:元組不可變,所以不能對元素進行排序
------------
1.【選擇】下列關於Python中字元串說法錯誤的是:(D)
D.Python中字元類型是char,字元串的類型是str
答案解析:python字元和字元串類型都是str
3.【填空】請寫出用空格「」合並字元串「Jane」、「Doe」的Python語句:
"Jane"+""+"Doe"
4.【選擇】下列不是Python3中解決路徑中特殊字元問題的選項是:(C)
C.s=u"D: est"
------------
1.【選擇】下列不是序列的是:(C)
C.集合
3.【選擇】下面哪些操作是序列都具有的?(D)
D.以上都是
-----
1.【判斷】Python中符號{}僅用在集合這一數據類型中。(B.×)
3.【填空】語句set("datascience")的結果是:
集合{'d','a','t','s','c','i','e','n'}
4.【選擇】下列關於集合的說法錯誤的是:(A)
A.集合具有互異性,定義集合時不允許出現相同的元素
答案解析:出現了重復也沒事,會自動去重的。
7.【選擇】在Python中對數據進行去重處理,一般會藉助下列哪種數據類型?(C)
C.集合
---------
1.【填空】有兩個列表a=["name","age","sex"],b=["jonh","23","M"],請用一個語句將這兩個列表轉換成字典,其中列表a中的元素為「鍵」,列表b中的元素為「值」。
dict(zip(a,b))
2.【填空】定義一個新字典如下,用print輸出dict1的結果是:
{1:3,2:'a'}
4.【判斷】下面對字典d的定義是正確的。(B.×)
答案解析:列表不能用做鍵。應該用元組('a','b')做鍵。
⑷ python怎麼讀取文件名中包含特殊字元的文件 比如xiân.txt
我都沒用過listdit。
但是,去找了下其使用說明:
os.listdir(path)
.Thelistisinarbitraryorder.Itdoesnotincludethespecial
entries'.'and'..'eveniftheyarepresentinthe
directory.
Availability:Unix,Windows.
Changedinversion2.3:OnWindowsNT/2k/XPandUnix,ifpathisaUnicodeobject,theresultwillbe
alistofUnicodeobjects.
stringobjects.
所以:
你可以試試,傳入路徑是unicode,比如:
foundDirList=os.listdir(u"在這里輸入你的")然後,輸出的list中的文件名列表,就都是unicode了,就可以正常顯示出你要的,包括特殊字元的文件名了。
然後你就可以正常的打開了。
當然,後續處理文件時,如果是中文等非ASCII的話,也是要了解涉及到字元編碼的。這時候,最好用codecs模塊。如何使用,參見:
【教程】用Python的codecs處理各種字元編碼的字元串和文件這里不能貼地址,google搜標題即可找到帖子。
⑸ 關於python的問題
這里有兩個知識點:
1、切片,比如有一個字元串:name = 'abcdef',那麼在內存中存儲如圖
取e 是 name[4]或者name[-2]
取ef 是 name[:-2]或者name[:4]
取bc 是name[1:3]或者name[-5:-3] ,需要注意的是,「:」後面取的閉包,也就是不包括本身,這個例子里name[3]的 d是不包括的。
那麼path[:-4]就好理解了,就是取字元串開頭到 -4位置的字元串'c: est.',不包括'h'。
2、轉移字元
python系統中,如果在字元串中使用了一些特殊字元,比如換行、換行、tab製表符等等,還有一些特殊意義的字元,像「 號,『號,需要在字元前面加上「」。即轉義符,通俗的說,就是「」後面的那個字元,不是字元原本的意思了,它代表了另一個字元。
比如常用到的 是代表換行, 是製表符。
但是有時候我們的字元串中,號就是它本身的意思,不作為轉義符,比如題目路徑中的中的號。這個時候就要在字元串前面加上一個'r',告訴系統,字元串裡面的 號,不是轉義符。
所以,你的題目答案就是 c: est.htm
當然,如果題目沒有「r」,也就是 path='c: est.html' 那麼答案就變成了 c: est.htm , 做為了一個製表符處理。
⑹ python 如何快速轉義路徑字元串中的斜杠
正斜杠,又稱左斜杠,符號是"/";反斜杠,也稱右斜杠,符號是"\"。
在Unix/Linux中,路徑的分隔採用正斜杠"/",比如"/home/hutaow";而在Windows中,路徑分隔採用反斜 杠"\",比如"C:\Windows\System"。
有時我們會看到這樣的路徑寫法,"C:\\Windows\\System",也就是用兩個反斜杠來分隔路徑,這種寫法在網路應用或編程中經 常看到,事實上,上面這個路徑可以用"C:/Windows/System"來代替,不會出錯。但是如果寫成了"C:\Windows\System", 那就可能會出現各種奇怪的錯誤了。
至於上述問題出現的原因,要從字元串解析這方面來分析。
學過編程的人都應該知道,在C裡面,輸出字元串時,如果想輸出一個換行,那就要加上'\n'這個標志,類似的,輸出一個TAB,就加上' \t',也就是說,反斜杠("\")這個符號會把跟在它後面的字元結合起來轉義成其它字元。根據這個原理,如果想輸出雙引號('"'),就需要輸入' \"',這樣才會將包含了雙引號的字元串正確的寫入內存中。那麼如果想輸入一個反斜杠呢?很簡單,只要敲'\\'就可以了。
看到這里或許有些人已經看出眉目了,如果"C:\Windows\System"這個路徑字元串交給C編譯器編譯,實際寫入內存的字元串並沒 有包含反斜杠"\",甚至緊跟在反斜杠後面的字母也一起被轉義成了其它的字元,再次調用的話勢必會出問題。
字元串解析不僅僅局限於C編譯器,Java編譯器、一些配置文件的解析、Web伺服器等等,都會遇到對字元串進行解析的這個問題,由於傳統的 Windows採用的是單個斜杠的路徑分隔形式,導致在對文件路徑進行解析的時候可能發生不必要的錯誤,所以就出現了用雙反斜杠"\\"分隔路徑的形式。 不管解析引擎是否將反斜杠解析成轉義字元,最終在內存中得到的都是"\",結果也就不會出問題了。
⑺ python編程時提示路徑中含有空格,請問各路大神怎麼處理。
輸出此路徑看看print '***',path,'***'
看看到底是因為空格問題還是此path就是個空串
⑻ 關於python處理文件路徑的問題
中文路徑無法使用可能是文字編碼不同,在代碼開頭加上
#-*coding:936*-
在路徑中有轉義字元,可以用/代替\,如
C:/Users/asus//Desktop/cura
或在字元串前加r
r"C:\Users\asus\Desktop\cura"
⑼ python里有能處理特殊字元的庫么
自己寫個函數
針對這里的問題,我們可以先將文件名解碼成unicode,然後用gbk編碼,如果拋出異常,說明編碼失敗,即文件名中存在特殊字元。下面是一個小例子:
#! /usr/bin/env python
# -*- coding: utf-8 -*-
file_names = ["œ®特殊字元.txt",
"沒有特殊字元.txt",
"ßååå.txt"
]
for file_name in file_names:
try:
file_name.decode("utf-8").encode("gbk")
print file_name, "..."
except UnicodeEncodeError:
print file_name, "中獎"
"""outputs:
œ®特殊字元.txt 中獎
沒有特殊字元.txt ...
ßååå.txt 中獎
"""
⑽ python有沒有好的去處字元串中特殊字元的方法
直接用str.replace就可以了。old表示將要替換的子串,new表示目標字元串,count表示替換個數。
>>> help(str.replace)
Help on method_descriptor:
replace(...)
S.replace(old, new[, count]) -> str
Return a of S with all occurrences of substring
old replaced by new. If the optional argument count is
given, only the first count occurrences are replaced.