Python中的文件輸入輸出問(wèn)題
Python文件輸入輸出
本文以.txt文件為例,說(shuō)明Python從.txt文件中讀取內(nèi)容和向.txt文件寫入內(nèi)容的方法。
a.txt文件內(nèi)容:
犬吠水聲中,桃花帶雨濃。
樹深時(shí)見鹿,溪午不聞鐘。
野竹分青靄,飛泉掛碧峰。
無(wú)人知所去,愁倚兩三松。
文件輸入
讀取文件:
open(filename, mode)
open返回一個(gè)文件對(duì)象。
第一個(gè)參數(shù)是一個(gè)包含文件名的字符串。
第二個(gè)參數(shù)是描述文件的使用模式,mode='r’表示只讀,mode='w’表示只寫,mode=‘r+’表示可讀可寫,mode=‘a’表示打開文檔并把要寫的內(nèi)容附在文檔末尾,不會(huì)刪除文檔已有內(nèi)容。
默認(rèn)模式為’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', '樹深時(shí)見鹿,溪午不聞鐘。\n', '野竹分青靄,飛泉掛碧峰。\n', '無(wú)人知所去,愁倚兩三松。\n']通常我們使用with關(guān)鍵字來(lái)讀取文件對(duì)象,with關(guān)鍵字可以在with語(yǔ)句結(jié)束后自動(dòng)關(guān)閉文件,避免一直占用計(jì)算機(jī)內(nèi)存資源。
with open('./a.txt', 'r') as f:
? ? d = f.read()
? ? print(d)
print(f.closed)
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時(shí)見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無(wú)人知所去,愁倚兩三松。
# True除了讀取文件中的所有內(nèi)容,我們還可以一行一行的讀取文件。
with open('./a.txt') as f:
? ? for line in f:
? ? ? ? print(line)
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時(shí)見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無(wú)人知所去,愁倚兩三松。因?yàn)樵诿恳恍心┪蔡幎紟в袚Q行符,因此每行之間都有一行為空。可以驗(yàn)證一下:
with open('./a.txt') as f:
? ? d = f.readlines()
? ? print(d)
# 輸出
# ['犬吠水聲中,桃花帶雨濃。\n', '樹深時(shí)見鹿,溪午不聞鐘。\n', '野竹分青靄,飛泉掛碧峰。\n', '無(wú)人知所去,愁倚兩三松。\n']我們可以通過(guò)str.strip([chars])函數(shù)來(lái)刪除字符串末尾的換行符。
strip()函數(shù)可以刪除字符串首尾的指定字符或者字符串,參數(shù)chars指定了要?jiǎng)h除的字符的集合。
如果沒有指定,則默認(rèn)為空格或者換行符。
但是strip()只能刪除開頭或者結(jié)尾的字符或字符串,不能刪除中間部分的字符。
with open('./a.txt') as f:
? ? for line in f:
? ? ? ? print(line.strip())
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時(shí)見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無(wú)人知所去,愁倚兩三松。因?yàn)樽址遣豢勺儗?duì)象,因此,strip()函數(shù)并不是在原來(lái)的字符串中直接進(jìn)行刪除,而是將刪除首尾字符后的字符串作為一個(gè)新對(duì)象并返回。
可以驗(yàn)證一下:
a = ' ?special ?' # 創(chuàng)建一個(gè)字符串對(duì)象并將變量a指向它 print(id(a)) # 打印a在內(nèi)存中的地址 a = a.strip() # 將刪除首尾空格后的字符串作為一個(gè)新對(duì)象,并將a指向它 print(id(a)) # 打a串在內(nèi)存中的地址 # 輸出 # 140251513494960 # 140251513470680
可得看到,刪除前后的字符串地址并不相同,說(shuō)明它們是不同的對(duì)象。
文件輸出
with open('./a.txt', 'a') as f:
? ? f.write('作者:李白\n')
with open('./a.txt', 'r') as f:
? ? for line in f:
? ? ? ? print(line.strip())
# 輸出
# 犬吠水聲中,桃花帶雨濃。
# 樹深時(shí)見鹿,溪午不聞鐘。
# 野竹分青靄,飛泉掛碧峰。
# 無(wú)人知所去,愁倚兩三松。
# 作者:李白Python輸入輸出語(yǔ)法
Python 是一門易于學(xué)習(xí)、功能強(qiáng)大的編程語(yǔ)言。它提供了高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),還能簡(jiǎn)單有效地面向?qū)ο缶幊?。Python 優(yōu)雅的語(yǔ)法和動(dòng)態(tài)類型以及解釋型語(yǔ)言的本質(zhì),使它成為多數(shù)平臺(tái)上寫腳本和快速開發(fā)應(yīng)用的理想語(yǔ)言。下面我們來(lái)介紹一下python的輸入輸出用法并舉幾個(gè)案例深入學(xué)習(xí)一下。
輸入和輸出
1、輸出
- 在Python中使用print()函數(shù)進(jìn)行輸出。
- 輸出字符串時(shí)可用單引號(hào)或雙引號(hào)括起來(lái);
- 輸出變量時(shí),可不加引號(hào);
- 變量與字符串同時(shí)輸出或多個(gè)變量同時(shí)輸出時(shí),需用“,”隔開各項(xiàng)。
print 默認(rèn)輸出是換行的,如果要實(shí)現(xiàn)不換行需要在變量末尾加上 end=“”
例:使用print()函數(shù)輸出數(shù)據(jù)。
print("這是一個(gè)輸出示例") # print()函數(shù)使用雙引號(hào)輸出示例
url = 'www.xxx.com' # 創(chuàng)建變量url,賦值為'www.xxx.com'
print('我們的網(wǎng)址是', url) # print()函數(shù)使用單引號(hào)輸出變量url運(yùn)行結(jié)果如下。

2、輸入
Python提供了input()函數(shù)用于獲取用戶鍵盤輸入的字符。
input()函數(shù)讓程序暫停運(yùn)行,等待用戶輸入數(shù)據(jù),當(dāng)獲取用戶輸入后,Python將其以字符串的形式存儲(chǔ)在一個(gè)變量中,方便后面使用。
例:使用input()函數(shù)實(shí)現(xiàn)輸入。
password = input("請(qǐng)輸入密碼:") # 輸入數(shù)據(jù)賦給變量password
print('您剛剛輸入的密碼是:', password) # 輸出數(shù)據(jù)運(yùn)行結(jié)果如下。

案例
例1:求兩數(shù)之和
編寫程序,要求輸入兩個(gè)整數(shù),求兩數(shù)之和后輸出。
(1)可使用int()函數(shù)將輸入的字符串轉(zhuǎn)化為整型數(shù)據(jù)。
(2)可使用float()函數(shù)將字符串轉(zhuǎn)化為浮點(diǎn)型數(shù)據(jù)。
a = input("請(qǐng)輸入第一個(gè)整數(shù):") # 輸入變量a的值
b = input("請(qǐng)輸入第二個(gè)整數(shù):") # 輸入變量b的值
a = int(a) # 將變量a轉(zhuǎn)換為整型數(shù)
b = int(b) # 將變量b轉(zhuǎn)換為整型數(shù)
c = a + b # 兩數(shù)相加賦給c
print("兩數(shù)之和為:", c) # 輸出c的值運(yùn)行結(jié)果如下。

例2:求三角形的面積
編寫程序,要求輸入三角形的三條邊(假設(shè)給定的三條邊符合構(gòu)成三角形的條件:任意兩邊之和大于第三邊),計(jì)算三角形的面積并輸出。
import math # 導(dǎo)入math模塊
a = int(input("請(qǐng)輸入三角形的第一條邊:")) # 輸入第一條邊并將其轉(zhuǎn)換為整型
b = int(input("請(qǐng)輸入三角形的第二條邊:")) # 輸入第二條邊并將其轉(zhuǎn)換為整型
c = int(input("請(qǐng)輸入三角形的第三條邊:")) # 輸入第三條邊并將其轉(zhuǎn)換為整型
s = 1 / 2 * (a + b + c) # 計(jì)算s
area = math.sqrt(s * (s - a) * (s - b) * (s - c)) # 調(diào)用sqrt函數(shù)計(jì)算面積
print("此三角形面積為:", area) # 輸出三角形面積運(yùn)行結(jié)果如下。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python3 入門教程 簡(jiǎn)單但比較不錯(cuò)
Python已經(jīng)是3.1版本了,與時(shí)俱進(jìn)更新教程.2.5或2.6請(qǐng)看上一篇文章。2009-11-11
Python 如何實(shí)現(xiàn)訪問(wèn)者模式
這篇文章主要介紹了Python 如何實(shí)現(xiàn)訪問(wèn)者模式,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
python使用socket實(shí)現(xiàn)的傳輸demo示例【基于TCP協(xié)議】
這篇文章主要介紹了python使用socket實(shí)現(xiàn)的傳輸demo,結(jié)合實(shí)例形式分析了Python使用socket庫(kù)基于TCP協(xié)議實(shí)現(xiàn)的客戶端與服務(wù)器端相關(guān)操作技巧,需要的朋友可以參考下2019-09-09
Django接收自定義http header過(guò)程詳解
這篇文章主要介紹了Django接收自定義http header過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
跟老齊學(xué)Python之從if開始語(yǔ)句的征程
前面做了很多鋪墊了,真正的編程我們還沒有講過(guò),各位童鞋也許早就不耐煩了,好吧,今天我們就從if語(yǔ)句來(lái)踏上我們的征程2014-09-09

