python逐行讀取文件
1. python如何實現分行提取指定字元串
python讀取文件內容的方法:一.最方便的方法是一次性讀取文件中的所有內容並放置到一個大字元串中:all_the_text=open('thefile.txt').read()#文本文件中的所有文本all_the_data=open('abinfile','rb').read()#二進制文件中的所有數據為了安全起見,最好還是給打開的文件對象指定一個名字,這樣在完成操作之後可以迅速關閉文件,防止一些無用的文件對象佔用內存。舉個例子,對文本文件讀取:file_object=open('thefile.txt')try:all_the_text=file_object.read()finally:file_object.close()不一定要在這里用Try/finally語句,但是用了效果更好,因為它可以保證文件對象被關閉,即使在讀取中發生了嚴重錯誤。二.最簡單、最快,也最具Python風格的方法是逐行讀取文本文件內容,並將讀取的數據放置到一個字元串列表中:list_of_all_the_lines=file_object.readlines()這樣讀出的每行文本末尾都帶有"\n"符號;如果你不想這樣,還有另一個替代的辦法,比如:list_of_all_the_lines=file_object.read().splitlines()list_of_all_the_lines=file_object.read().split('\n')list_of_all_the_lines=[L.rstrip('\n')forLinfile_object]
2. 用python讀取文本文件,對讀出的每一行進行操作,這個怎麼寫
用python讀取文本文件,對讀出的每一行進行操作,寫法如下:
f=open("test.txt","r")
whileTrue:
line=f.readline()
ifline:
pass#dosomethinghere
line=line.strip()
p=line.rfind('.')
filename=line[0:p]
print"create%s"%line
else:
break
f.close()
3. Python如何從文件讀取數據
1.1 讀取整個文件
要讀取文件,需要一個包含幾行文本的文件(文件PI_DESC.txt與file_reader.py在同一目錄下)
PI_DESC.txt
3.1415926535
8979323846
2643383279
5028841971
file_reader.py
with open("PI_DESC.txt") as file_object:
contents = file_object.read()
print(contents)
我們可以看出,讀取文件時,並沒有使用colse()方法,那麼未妥善的關閉文件,會不會導致文件收到損壞呢?在這里是不會的,因為我們在open()方法前邊引入了關鍵字with,該關鍵字的作用是:在不需要訪問文件後將其關閉
1.2文件路徑
程序在讀取文本文件的時候,如果不給定路徑,那麼它會先在當前目錄下進行檢索,有時候我們需要讀取其他文件夾中的路徑,例如:
4. python怎樣實現一行一行讀取文件數據,並且要實現讀取一行數據,就進行條件判斷
超簡單
get='''12
15
16
19
23'''
result=get.split(' ')
foriinresult:
ifint(i)>16:
print(i)
滿意還請採納
5. Python讀取文件內容的方法有幾種
filename=open('i:\\install\\test.txt','r+')#讀取xx路徑xx文件;r+代表的是讀寫並存方式 print filename.read()#讀取所有的文件
6. python如何讀取文件的內容
# _*_ coding: utf-8 _*_
import pandas as pd
# 獲取文件的內容
def get_contends(path):
with open(path) as file_object:
contends = file_object.read()
return contends
# 將一行內容變成數組
def get_contends_arr(contends):
contends_arr_new = []
contends_arr = str(contends).split(']')
for i in range(len(contends_arr)):
if (contends_arr[i].__contains__('[')):
index = contends_arr[i].rfind('[')
temp_str = contends_arr[i][index + 1:]
if temp_str.__contains__('"'):
contends_arr_new.append(temp_str.replace('"', ''))
# print(index)
# print(contends_arr[i])
return contends_arr_new
if __name__ == '__main__':
path = 'event.txt'
contends = get_contends(path)
contends_arr = get_contends_arr(contends)
contents = []
for content in contends_arr:
contents.append(content.split(','))
df = pd.DataFrame(contents, columns=['shelf_code', 'robotid', 'event', 'time'])
(6)python逐行讀取文件擴展閱讀:
python控制語句
1、if語句,當條件成立時運行語句塊。經常與else, elif(相當於else if) 配合使用。
2、for語句,遍歷列表、字元串、字典、集合等迭代器,依次處理迭代器中的每個元素。
3、while語句,當條件為真時,循環運行語句塊。
4、try語句,與except,finally配合使用處理在程序運行中出現的異常情況。
5、class語句,用於定義類型。
6、def語句,用於定義函數和類型的方法。
7. 使用 Python 讀寫文件
有些數據是臨時的,它們在應用程序運行時存儲在內存中,然後丟棄。但是有些數據是持久的。它們存儲在硬碟驅動器上供以後使用,而且它們通常是用戶最關心的東西。對於程序員來說,編寫代碼讀寫文件是很常見的,但每種語言處理該任務的方式都不同。本文演示了如何使用 Python 處理文件數據。
在 Linux 上,你可能已經安裝了 Python。如果沒有,你可以通過發行版軟體倉庫安裝它。例如,在 CentOS 或 RHEL 上:
在 macOS 上,你可以使用 MacPorts或Homebrew安裝。在 Windows 上,你可以使用Chocolatey安裝。
一旦安裝了 Python,打開你最喜歡的文本編輯器,准備好寫代碼吧。
如果你需要向一個文件中寫入數據,記住有三個步驟:
這與你在計算機上編碼、編輯照片或執行其他操作時使用的步驟完全相同。首先,打開要編輯的文檔,然後進行編輯,最後關閉文檔。
在 Python 中,過程是這樣的:
這個例子中,第一行以 寫 模式打開了一個文件,然後用變數 f 表示,我使用了 f 是因為它在 Python 代碼中很常見,使用其他任意有效變數名也能正常工作。
在打開文件時,有不同的模式:
第二行表示向文件中寫入數據,本例寫入的是純文本,但你可以寫入任意類型的數據。
最後一行關閉了文件。
對於快速的文件交互,常用有一種簡短的方法可以寫入數據。它不會使文件保持打開狀態,所以你不必記得調用 close 函數。相反,它使用 with 語法:
如果你或你的用戶需要通過應用程序需要向文件中寫入一些數據,然後你需要使用它們,那麼你就需要讀取文件了。與寫入類似,邏輯一樣:
同樣的,這個邏輯反映了你一開始使用計算機就已知的內容。閱讀文檔,你可以打開、閱讀,然後關閉。在計算機術語中,「打開」文件意味著將其載入到內存中。
實際上,一個文本文件內容肯定不止一行。例如,你需要讀取一個配置文件、 游戲 存檔或樂隊下一首歌曲的歌詞,正如你打開一本實體書時,你不可能立刻讀完整本書,代碼也只能解析已經載入到內存中的文件。因此,你可能需要遍歷文件的內容。
示例的第一行指明使用 讀 模式打開一個文件,然後文件交由變數 f 表示,但就像你寫數據一樣,變數名是任意的。 f 並沒有什麼特殊的,它只是單詞 「file」 的最簡表示,所以 Python 程序員會經常使用它。
在第二行,我們使用了 line ,另一個任意變數名,用來表示 f 的每一行。這告訴 Python 逐行迭代文件的內容,並將每一行的內容列印到輸出中(在本例中為終端或IDLE)。
就像寫入一樣,使用 with 語法是一種更簡短的方法讀取數據。即不需要調用 close 方法,方便地快速交互。
使用 Python 有很多方法向文件寫入數據,包括用 JSON、YAML、TOML等不同的格式寫入。還有一個非常好的內置方法用於創建和維護SQLite資料庫,以及許多庫來處理不同的文件格式,包括圖像、音頻和視頻等。
via: https://opensource.com/article/21/7/read-write-files-python
作者:Seth Kenlon選題:lujun9972譯者:MjSeven校對:turbokernel
8. python對文本文件的讀有哪些方法,寫有哪些方法
1 文件讀取全文本操作
在一定場景下我們需要把文本全部內容讀取出來,進行處理。python提供三種函數讀取文件,分別是read readline readlines,
read():讀取文件的全部內容,加上參數可以指定讀取的字元。
readline():讀取文件的一行。
readlines():讀取文件的所有行到內存中。
不同場景下我們可以選擇不同函數對文件進行讀取。
1.1 方法一
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")
txt=file.read()
# 全文本的處理
file.close()
使用read函數將文件中的內容全部讀取,放在字元串變數txt中。這樣操作適合於文本較小,處理簡單的情況,當文件較大時,這種方式處理時不合適的。一次性讀取較大的文件到內存中,會耗費較多的時間和資源。這時候分批處理效果更好。
1.2 方法二
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")
txt= file.read(4)
# 文本的處理while txt != ""txt= file.read(4)
# 批量文本處理
file.close()
這種方法適合於分批處理文本信息,每次批量讀入,批量處理,不會對內存造成較大的壓力。
1.3 方法三
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r")for line infile.readlines():
# 處理每一行數據
file.close()
這種處理方式適合處理以行為分割特點的文本,並且文本較小,因為這種處理方式需要一次性把文件所有內容讀取到內存中。
1.4 方法四
file_name = input("請輸入你要打開的文件的完整路徑及名稱")
file= open(file_name, "r") # 這里的file時文件句柄for line infile:
# 處理每一行數據
file.close()
這種方式和方法三中的區別是分行讀入,逐行處理,不會一次性把文件所有內容都讀入到內存中,對一些大文件的處理是很有效的。
2 文件寫入文本操作
文件寫入有兩種寫入函數和一種輔助支持。
write():向文件中寫入一個字元或者位元組流
writelines():將一個元素全為字元串的列表寫入到文件中 需要注意的是,writelines寫入列表元素的時候會把列表元素的內容拼接到一起寫入,不會有換行和空格 。
seek(): 輔助寫入函數offset偏移量參數代表含義如下
0 - 文件開頭
1 - 當前位置
2 - 文件結尾
2.1 方法一
file_name = input("output.txt", "w+")
text= "hello world!"file_name.write(text)
file.close()
2.2 方法二
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.writelines(list)for line infile:
# 讀取寫入的數據,這時候發現是沒有任何內容的
file.close()
我們增加一行代碼就可以讀取到寫入的文件內容,利用seek()函數調整寫操作指針的位置,可以實現寫操作之後的正常讀取。
file_name = input("output.txt", "w+")
list= ["中午","早上","晚上"]
file_name.readlines(list)
file_name.seek(0) # 調整寫的指針到文件的開始位置for line infile:
# 讀取寫入的數據,這時候會讀出一行寫入的數據。
file.close()