網站首頁 編程語言 正文
Python文件輸入輸出
本文以.txt文件為例,說明Python從.txt文件中讀取內容和向.txt文件寫入內容的方法。
a.txt文件內容:
犬吠水聲中,桃花帶雨濃。
樹深時見鹿,溪午不聞鐘。
野竹分青靄,飛泉掛碧峰。
無人知所去,愁倚兩三松。
文件輸入
讀取文件:
open(filename, mode)
open返回一個文件對象。
第一個參數是一個包含文件名的字符串。
第二個參數是描述文件的使用模式,mode='r’表示只讀,mode='w’表示只寫,mode=‘r+’表示可讀可寫,mode=‘a’表示打開文檔并把要寫的內容附在文檔末尾,不會刪除文檔已有內容。
默認模式為’r’。
poem = open('./a.txt', 'r')
print(poem)
# 輸出
# <_io.TextIOWrapper name='./a.txt' mode='r' encoding='UTF-8'>
poem = open('./a.txt', 'r')
print(list(poem))
# 輸出
# ['犬吠水聲中,桃花帶雨濃。\n', '樹深時見鹿,溪午不聞鐘。\n', '野竹分青靄,飛泉掛碧峰。\n', '無人知所去,愁倚兩三松。\n']
通常我們使用with關鍵字來讀取文件對象,with關鍵字可以在with語句結束后自動關閉文件,避免一直占用計算機內存資源。
with open('./a.txt', 'r') as f:
? ? d = f.read()
? ? print(d)
print(f.closed)
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無人知所去,愁倚兩三松。
# True
除了讀取文件中的所有內容,我們還可以一行一行的讀取文件。
with open('./a.txt') as f:
? ? for line in f:
? ? ? ? print(line)
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無人知所去,愁倚兩三松。
因為在每一行末尾處都帶有換行符,因此每行之間都有一行為空。可以驗證一下:
with open('./a.txt') as f:
? ? d = f.readlines()
? ? print(d)
# 輸出
# ['犬吠水聲中,桃花帶雨濃。\n', '樹深時見鹿,溪午不聞鐘。\n', '野竹分青靄,飛泉掛碧峰。\n', '無人知所去,愁倚兩三松。\n']
我們可以通過str.strip([chars])函數來刪除字符串末尾的換行符。
strip()函數可以刪除字符串首尾的指定字符或者字符串,參數chars指定了要刪除的字符的集合。
如果沒有指定,則默認為空格或者換行符。
但是strip()只能刪除開頭或者結尾的字符或字符串,不能刪除中間部分的字符。
with open('./a.txt') as f:
? ? for line in f:
? ? ? ? print(line.strip())
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無人知所去,愁倚兩三松。
因為字符串是不可變對象,因此,strip()函數并不是在原來的字符串中直接進行刪除,而是將刪除首尾字符后的字符串作為一個新對象并返回。
可以驗證一下:
a = ' ?special ?' # 創建一個字符串對象并將變量a指向它
print(id(a)) # 打印a在內存中的地址
a = a.strip() # 將刪除首尾空格后的字符串作為一個新對象,并將a指向它
print(id(a)) # 打a串在內存中的地址
# 輸出
# 140251513494960
# 140251513470680
可得看到,刪除前后的字符串地址并不相同,說明它們是不同的對象。
文件輸出
with open('./a.txt', 'a') as f:
? ? f.write('作者:李白\n')
with open('./a.txt', 'r') as f:
? ? for line in f:
? ? ? ? print(line.strip())
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無人知所去,愁倚兩三松。
# 作者:李白
Python輸入輸出語法
Python 是一門易于學習、功能強大的編程語言。它提供了高效的高級數據結構,還能簡單有效地面向對象編程。Python 優雅的語法和動態類型以及解釋型語言的本質,使它成為多數平臺上寫腳本和快速開發應用的理想語言。下面我們來介紹一下python的輸入輸出用法并舉幾個案例深入學習一下。
輸入和輸出
1、輸出
- 在Python中使用print()函數進行輸出。
- 輸出字符串時可用單引號或雙引號括起來;
- 輸出變量時,可不加引號;
- 變量與字符串同時輸出或多個變量同時輸出時,需用“,”隔開各項。
print 默認輸出是換行的,如果要實現不換行需要在變量末尾加上 end=“”
例:使用print()函數輸出數據。
print("這是一個輸出示例") # print()函數使用雙引號輸出示例
url = 'www.xxx.com' # 創建變量url,賦值為'www.xxx.com'
print('我們的網址是', url) # print()函數使用單引號輸出變量url
運行結果如下。
2、輸入
Python提供了input()函數用于獲取用戶鍵盤輸入的字符。
input()函數讓程序暫停運行,等待用戶輸入數據,當獲取用戶輸入后,Python將其以字符串的形式存儲在一個變量中,方便后面使用。
例:使用input()函數實現輸入。
password = input("請輸入密碼:") # 輸入數據賦給變量password
print('您剛剛輸入的密碼是:', password) # 輸出數據
運行結果如下。
案例
例1:求兩數之和
編寫程序,要求輸入兩個整數,求兩數之和后輸出。
(1)可使用int()函數將輸入的字符串轉化為整型數據。
(2)可使用float()函數將字符串轉化為浮點型數據。
a = input("請輸入第一個整數:") # 輸入變量a的值
b = input("請輸入第二個整數:") # 輸入變量b的值
a = int(a) # 將變量a轉換為整型數
b = int(b) # 將變量b轉換為整型數
c = a + b # 兩數相加賦給c
print("兩數之和為:", c) # 輸出c的值
運行結果如下。
例2:求三角形的面積
編寫程序,要求輸入三角形的三條邊(假設給定的三條邊符合構成三角形的條件:任意兩邊之和大于第三邊),計算三角形的面積并輸出。
import math # 導入math模塊
a = int(input("請輸入三角形的第一條邊:")) # 輸入第一條邊并將其轉換為整型
b = int(input("請輸入三角形的第二條邊:")) # 輸入第二條邊并將其轉換為整型
c = int(input("請輸入三角形的第三條邊:")) # 輸入第三條邊并將其轉換為整型
s = 1 / 2 * (a + b + c) # 計算s
area = math.sqrt(s * (s - a) * (s - b) * (s - c)) # 調用sqrt函數計算面積
print("此三角形面積為:", area) # 輸出三角形面積
運行結果如下。
原文鏈接:https://blog.csdn.net/w1301100424/article/details/92800041
相關推薦
- 2023-05-20 Python優化算法之遺傳算法案例代碼_python
- 2022-07-18 Android 解決InputMethodManager 內存泄露問題
- 2022-05-12 Android uniapp項目接入實例、uniapp混合開發踩坑手冊、uniapp Android
- 2022-06-26 python數據處理之Pandas類型轉換的實現_python
- 2022-04-14 解決Goland錯誤:$GOPATH/go.mod exists but should not
- 2022-04-05 詳解C#如何實現讀寫ini文件_C#教程
- 2022-07-21 A component required a bean of type ‘com.ruoyi.sea
- 2022-03-27 centos7安裝mongo數據庫的方法(mongo4.2.8)_MongoDB
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支