字符串操作-分解路徑筆記
一、字符串操作:
"""
字符串處理
"""
if __name__ == '__main__':
"""
統計子串出現的次數
"""
str1 = "abc123abcdef987poiabcabab"
print("子串統計", str1.count('abc'))
"""
空白刪除
\r、\n、\t顯示效果都是空白的
"""
str2 = " \t \r\n abc \r\n "
print("空白刪除", '[' + str2.lstrip() + ']')
print("空白刪除", '[' + str2.rstrip() + ']')
print("空白刪除", '[' + str2.strip() + ']')
"""
大小寫轉換
"""
str3 = "A Na Ta No Ko To Ga Su Ki De Su"
print("大小寫", str3.upper())
print("大小寫", str3.lower())
"""
查找字符串所在位置
"""
str4_1 = "ABC456ABC101112ABC"
str4_2 = "abc456abc101112abc"
print("查找", str4_1.find("abc"))
print("查找", str4_2.find("abc"))
print("查找", str4_2.find("abc", 2))
print("查找", str4_2.find("abc", 7))
print("查找", str4_2.rfind("abc"))
"""
字符串替換
"""
str5 = "123abc456qwe789abc"
print("替換", str5.replace('abc', '|||'))
print("替換", str5.replace('abc', '|||', 1))
"""
字符串分割
"""
str6 = "123abc456qwe789abcqqq"
print("分割", str6.split('abc'))
print("分割", str6.split('abc', 1))
"""
字符串切片
"""
string_test = "0123456789"
print('刪頭:', string_test[2:])
print('刪尾:', string_test[:-2])
print('Left:\t', string_test[:3])
print('Right:\t', string_test[-3:])
print('Mid:\t', string_test[1:3])
print('Mid:\t', string_test[3:7])
二、題目:路徑分解
"""
作業
已知文件路徑 C:\Program Files (x86)\Internet Explorer\iexplore.exe
通過方法可返回
文件路徑:C:\Program Files (x86)\Internet Explorer
文件名:iexplore.exe
文件擴展名:exe
文件磁盤:C
請設計並實現該函數,並使得傳入任意文件路徑都可以返回類似的信息。
"""
known_string1 = r"C:\Program Files (x86)\Internet Explorer\iexplore.exe"
known_string2 = r"C:\Windows\System32\notepad.exe"
known_string3 = r"C:\Users\zhmh\honey\gaoyu"
def split_file_path(full_file_path):
r_position = full_file_path.rfind('\\')
file_path = full_file_path[:r_position]
file_name = full_file_path[-(len(full_file_path)-r_position-1):]
d_position = file_name.rfind('.')
if d_position != -1:
ext_name = file_name[-(len(file_name)-d_position-1):]
else:
ext_name = ""
drive_name = full_file_path[:1]
return file_path, file_name, ext_name, drive_name
# end def
print(split_file_path(known_string1))
print(split_file_path(known_string2))
print(split_file_path(known_string3))
思路:觀察路徑格式可知,文件路徑爲從右邊數第一個\之前的所有字符,文件名爲從右邊數第一個\之後的所有字符,擴展名爲文件名中.後邊的字符,此處注意沒有擴展名的情況,磁盤爲文件路徑的第一個字符,可直接切第一個字符出來。
應用知識:查找、切片
注意點:
1、查找\字符位置
r_position = full_file_path.rfind(’\’)
d_position = file_name.rfind(’.’)
此處查找右邊的第一個\ 爲轉義字符要用兩個\,查找字符語句.rfind
2、切片
1、取\左邊部分字符:
file_path = full_file_path[:r_position]
2、取\右邊部分字符:用長度-\位置-1
file_name = full_file_path[-(len(full_file_path)-r_position-1):]
3、判斷是否有擴展名,沒有輸出空串
if d_position != -1:
ext_name = file_name[-(len(file_name)-d_position-1):]
else:
ext_name = ""
4、取路徑第一位置:
drive_name = full_file_path[:1]
5、同時返回多個函數值:
return file_path, file_name, ext_name, drive_name
6、如何調用函數:
split_file_path(known_string1)
7、如何輸出函數結果
print(split_file_path(known_string1))
三、補充知識:
1、字符串表示方法:
string1 = "String" # 雙引號
string2 = 'string' # 單引號
string3 = """STT # 可換行
ing"""
string4 = '''str
ING'''
string5 = r"C:\Windows" # 開頭加個r
string6 = r'C:\C:\Program Files'