1、讀取整個文件
不要忘記.read() 這個方法,
相比於原始文件,該輸出唯一不同的地方是末尾多了一個空行。為何會多出這個空行呢?因為read()到達文件末尾時返回一個空字符串,而將這個空字符串顯示出來時就是一個空行。要刪除多出來的空行,可在函數調用print()中使用rstrip()
with open('pi_digits.txt') as file_object: contents = file_object.read() print(contents.rstrip())
2、文件路徑
2.1、相對路徑
with open('text_files/filename.txt') as file_object:
2.2、絕對路徑
file_path = '/home/ehmatthes/other_files/text_files/_filename_.txt' with open(file_path) as file_object:
注意 如果在文件路徑中直接使用反斜杠,將引發錯誤,因為反斜杠用於對字符串中的字符進行轉義。例如,對於路徑"C:\path\to\file.txt",其中的\t將被解讀為制表符。如果一定要使用反斜杠,可對路徑中的每個反斜杠都進行轉義,如"C:\\path\\to\\file.txt"。
3、逐行讀取
如下有兩個方法,第一個是在with 體內 嵌套循環for來讀取,,,另外一種方式比較好,在with代碼塊中 將每一行讀取的數據存儲到列表lines中(是列表類型),然后在體外執行for循環,
['3.1415926535 \n', ' 8979323846 \n', ' 2643383279\n'],文件的每一行都帶有一個換行符,執行print()時頁會加一個換行符,所以如果不用rstrip()字符串末尾去空格的函數,將會每行之間空一整行
filename = 'pi_digits.txt' with open(filename) as file_object: for line in file_object: print(line.rstrip())
filename = 'pi_digits.txt' with open(filename) as file_object: lines = file_object.readlines() for line in lines: print(line.rstrip())
讀取大文本的前50個字符,並將該文本的字符總數打印出來
filename = 'pi_million_digits.txt' with open(filename) as file_object: lines = file_object.readlines() pi_string = '' for line in lines: pi_string += line.strip() print(f"{pi_string[:50]}") print(len(pi_string))
輸入生日查看是否在文本內容中
filename = 'pi_million_digits.txt' with open(filename) as file_object: lines = file_object.readlines() pi_string = '' for line in lines: pi_string += line.strip() birthday = input("input your birthday: ") if birthday in pi_string: print(f"Your birthday in list") else: print(f"Your birthday does not in list")