字符串操作-分解路徑筆記

字符串操作-分解路徑筆記

一、字符串操作:

代碼引用

"""
    字符串處理
"""

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'

四、記住:

調用函數要傳入參數,如果要有輸出結果,一定要return,main中一定要有print 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章