日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【Python】从文件中读取数据

發布時間:2025/6/16 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Python】从文件中读取数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

從文件中讀取數據

1.1 讀取整個文件

要讀取文件,需要一個包含幾行文本的文件(文件PI_DESC.txt與file_reader.py在同一目錄下

PI_DESC.txt

3.1415926535897932384626433832795028841971

file_reader.py

with open("PI_DESC.txt") as file_object:contents = file_object.read()print(contents)

我們可以看出,讀取文件時,并沒有使用colse()方法,那么未妥善的關閉文件,會不會導致文件收到損壞呢?在這里是不會的,因為我們在open()方法前邊引入了關鍵字with,該關鍵字的作用是:在不需要訪問文件后將其關閉

1.2文件路徑

程序在讀取文本文件的時候,如果不給定路徑,那么它會先在當前目錄下進行檢索,有時候我們需要讀取其他文件夾中的路徑,例如:

現在文件PI_DESC.txt存儲在文件夾txt中

那么我們讀取文本內容的代碼得修改為:

with open("txt\PI_DESC.txt") as file_object:contents = file_object.read()print(contents)

給open參數傳遞的參數得給相對路徑

Linux與OS X中,路徑使用斜杠(/)

Windows中,使用反斜杠(\),但是由于python中,反斜杠被視為轉義字符,在Windows最好在路徑開頭的單(雙)引號前加上r

相對路徑:即相對于程序文件的路徑

絕對路徑:即文本在硬盤上存儲的路徑

使用絕對路徑的程序怎么寫呢 ?

with open(r"D:\python\txt\PI_DESC.txt") as file_object:contents = file_object.read()print(contents)

1.3逐行讀取

讀取文件時,可能需要讀取文件中的每一行,要以每一行的方式來檢查文件或者修改文件,那么可以對文件對象使用for循環

file_path = 'txt\PI_DESC.txt' with open(file_path) as file_object:for line in file_object:print(line)

程序運行結果如下:

通過運行結果我們可以看出,打印結果中間有很多空白行,這些空白行是怎么來的呢?因為在這個文件中,每行的末尾都有一個看不見的換行符,而print語句也會加一個換行符,因此每行末尾就有2個換行符:一個來自文件,另外一個來自print,消除這些換行符,只需要使用方法rstrip()

file_path = 'txt\PI_DESC.txt' with open(file_path) as file_object:for line in file_object:print(line.rstrip())

打印結果

1.4創建一個包含文件各行內容的列表

使用關鍵字with時,open()返回的文件對象只能在with代碼塊可用,如果要在with代碼塊外訪問文件的內容,可在with塊中將文件各行存儲在一個列表,并在with代碼塊外使用該列表

file_path = 'txt\PI_DESC.txt' with open(file_path) as file_object:lines = file_object.readlines() for line in lines:print(line.rstrip())

1.5使用文件的內容

在上面一節中我們提到把數據提取到內存中,那么我們就可以對數據進行隨心所欲的操作了

需要:將圓周率連在一起打印出來(刪除空格),并打印其長度

file_path = 'txt\PI_DESC.txt' with open(file_path) as file_object:lines = file_object.readlines()pi_str = '' for line in lines:pi_str += line.strip() print(pi_str.rstrip()) print(len(pi_str.rstrip()))

注意最后print語句并沒有縮進,如果是縮進的話就會每取一行打印一次

打印效果如下

1.5大文件的讀取

在這里我先用圓周率前10000位做實驗,也算不上大文件,只是相對來說是大文件

附件下載地址:點擊下載

為了不顯示圓周率一萬位,造成console不停的閃爍,我們只顯示前20位

file_path = 'txt\PI_DESC.txt' with open(file_path) as file_object:lines = file_object.readlines()pi_str = '' for line in lines:pi_str += line.strip() print(pi_str[:20].lstrip())

總結

以上是生活随笔為你收集整理的【Python】从文件中读取数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。