當前位置:首頁 » 編程語言 » python怎麼讀文件

python怎麼讀文件

發布時間: 2023-04-29 04:33:08

A. 用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()

B. Python文件讀寫

常見的讀寫操作:

Python內置了讀寫文件的函數,用法和C是兼容的。本節介紹內容大致有:文件的打開/關閉、文件對象、文件的讀寫等。僅示例介紹 TXT 類型文檔的讀寫,也就是最基礎的文件讀寫,也需要注意編碼問題;

open()   close()     with open(...) as ...

看以下示例就能了解 Python 的 open() 及 close() 函數。這邊調用 read()方法可以一次讀取文件的全部內容,Python把內容讀到內存,用一個str對象表示,具體使用參見下文。

在 E 盤 python_file 文件夾下新建一 a.txt,輸入隨意,如下:

Python 操作 打開及關閉方式 如下:

注意 open() 之後 一定要 close()。但由於文件讀寫時都可能產生IOError,為了保證無論是否出錯都能正確地關閉文件,我們用 try ... finally 來實現:

python 簡化了改寫法,即用 with open(...) as ...  ; 建議之後文件讀寫都用該寫法:

上面,你肯定注意到了參數 "r";該參數決定了打開文件的模式:只讀,寫入,追加等。所有可取值見如下的完全列表。這個參數是非強制的,默認文件訪問模式為只讀(r)。

相關參數:

File 對象

file 為一對象,它有一些內置屬性,如下

file對象的屬性:

read()    read(size)   readline()   readlines()

之前的例子已經接觸到了 read() 函數,該函數會會一次性讀取文件的全部內容,如果能確保文件的大小,自然可以。但若文件過大,內存就爆了,所以,可以反復調用read(size)方法,每次最多讀取size個位元組的內容;也可調用 readline() 每次讀取一行內容;而調用readlines()可以一次讀取所有內容並按行返回list。總之,根據需求來。僅以 txt 文件為例,其他的文件讀取需要特殊處理;另外,文件的格式編碼方式也需要注意;這邊僅介紹讀取方法,其他的會出專題來學習。

在D:\python_file 下新建 poet.txt;示例如下,由於一個中文會佔多個位元組,故read(size) 部分會亂碼,如:

write()

寫文件和讀文件是一樣的,唯一區別是調用open()函數時,傳入標識符'w'或者'wb'表示寫文本文件或寫二進制文件;'a' 對應的表示追加等。

如下示例,由於 write.txt 文件不存在,創建該文件並寫入:

在上例基礎上,繼續,該文件被重寫:

繼續,這次使用追加,會在文件結尾追加:

https://blog.csdn.net/msspark/article/details/86745391

https://www.cnblogs.com/tianyiliang/p/8192703.html

https://www.cnblogs.com/camilla/p/7234657.html

https://blog.csdn.net/songlh1234/article/details/83316468

https://www.php.cn/python-tutorials-412484.html

https://blog.csdn.net/weay/article/details/80946152

https://blog.csdn.net/xc_zhou/article/details/81044836

C. python之文件讀取

open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

參數說明:

name:文件名稱的字元串值

mode:只讀r ,寫入w,追加a,默認文件訪問模式為r

buffering:寄存區緩存

0:不寄存

1:訪問文件時會寄存行

>1:寄存區的緩存大小

負值:寄存區的緩存大小則為系統默認

1、打開文件,獲取文件描述符

2、操作文件描述符(讀、寫)

3、關閉文件

運行結果:

 運行結果:

D. python 文件的打開與讀寫

/python通過解釋器內置的open()函數打開一個文件,並實現該文件與一個程序變數的關聯,open()函數格式如下:

/open()函數包含有兩個參數:文件名和打開模式.當文件與執行文件在同一大廳文件夾中,直接輸入文件名,亦可輸入文件的完整路徑.打開模式是指以何種方式打開文件,python提供了7種打開模式.

/r/w/x/a模式與b/t/+模式可以組合使悉仿悄用,比如'rt'為文睜渣本只讀.'rb'為二級制只讀.

/文件使用結束後,需要使用close()關閉文件使用許可權,釋放內存.

/當文件使用文本格式打開時,讀寫按照字元串方式,採用計算機當前編碼或指定編碼.
/當文件以二進制方式打開時,讀寫按照位元組流方式.

/python本身將文件讀取為一個行序列.

E. python讀寫文件

讀文件

    1)使用open()方法打開文件,返回一個文件對象

        原型:open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)

        舉例:f = open('test.txt', 'r')

        test.txt表示文件路徑(包含文件名,這個file參數可以是絕對或者相對路徑)

        r表示是讀文本文件,rb是讀二進制文本文件。(這個mode參數默認值就是r)

    2)使用close()方法關閉文件

        f.close()

        打開後的文件必須關閉,因為文件對象會佔用系統資源,系統打開文件數量也就有限了

    3)打開文件時的異常處理

        f=open('test.txt', 'r')

        f.read()

        f.close()

        FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'

        文件讀寫時都有可能產生異常IOError(比如文件不存在),這樣其後面的f.read(),f.close()就不會調用。為保證無論是否異常都可以關閉文件,一般使用try ... finally來處理:

        try:

            f = open('test.txt', 'r')

            f.read()

        finally:

            if f:

                f.close()

        但這種寫法過於繁瑣,所以Python引入了with語句來自動調用close()方法:

        with open('test.txt', 'r') as f:

            f.read()

    4)讀文件 - read()、readline() 和 readlines()

        read() 一次讀取整個文件,它通常用於將文件內容放到一個字元串變數中。如果文件過大,內存不夠,可以通過反復調用read(size)方法,每次最多讀取size個位元組的內容。

        readline() 一次讀取文件中一行內容,可反復調用

        readlines() 一次讀取所有內容並按行返回列表,該列表可以由for ... in ... 結構再進一步處理。

        特別注意:

        這三種方法是把每行末尾的'\n'也讀進來了,如有需要就得我們手動去掉'\n'

        with open('test.txt', 'r') as f:

            list = f.readlines()

        for i in range(0, len(list)):

            list[i] = list[i].rstrip('\n')

寫文件

    1)寫文件和讀文件是一樣的,唯一區別是open文件時,傳入標識符不同,即'w'或者'wb'表示寫文本文件或寫二進制文件

    f = open('test.txt', 'w')

    f = open('test.txt', 'wb')

    f = open('test.txt', 'a')

    f.close()

    特別注意:

    1. 如果沒有這個文件,會自動創建一個新文件;如果有,就會先把原文件的內容清空再寫入;若不想清空原來的內容而是直接在後面追加新的內容,就用'a'這個模式

    2. 寫文件,操作系統往往不會立刻把數據寫入磁碟,而是放到內存緩存起來,空閑的時候再慢慢寫入。只有調用close()方法時,操作系統才保證把沒有寫入的數據全部寫入磁碟。忘記調用close()的後果是數據可能只寫了一部分到磁碟,剩下的丟失了。

    2)寫文件 - write()、writelines()

    write()方法和read()、readline()方法對應,是將字元串寫入到文件中。

    writelines()方法和readlines()方法對應,也是針對 列表 的操作。它接收一個 字元串列表 作為參數,將他們寫入到文件中。

    特別注意:

    換行符不會自動的加入,需要顯式的加入換行符。

    f = open('test.txt', 'w')

    f.writelines(["111\n", "222\n", "333\n"])

補充說明:

1)對於非默認編碼(utf-8)的文件,需要open時添加encording參數,選擇對應的編碼方式

2)r+, w+, a+,可讀可寫

3)seek()方法,移動文件指針

seek(offset[, whence]) ,offset是相對於某個位置的偏移量。位置由whence決定,默認whence=0,從開頭起;whence=1,從當前位置算起;whence=2相對於文件末尾移動,通常offset取負值。

F. 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()

G. python文件讀取與寫入

open(filepath) :打開文件
open(filepath,'r') :打開方式,默認是讀取

open(filepath).read() :讀取文件中的內容
open(filepath).readline() :讀取文件中一行的內容
open(filepath).readline()[1] :讀取文件中的內容,返回值是列表。
open(filepath).close() :關閉文件
open(filepath).seek(0) :將游標回到首位

with open()函數,不用close()方法,默認自動關閉,所以需要制定一些規則.

文件內建函數和方法:
open() : 打開文件
read() :輸入
readline() :輸入一行
seek() :文件內移動
write() :輸出
close() :關閉文件

H. python讀取文件—txt文件常用讀寫操作

f = open("data.txt","r")   #設置文件對象

f.close() #關閉文件

為了方便,避免忘記close掉這個文件對象,可以用下面這種方式替代

with open('data.txt',"r") as f:    #設置文件對象

 str = f.read()    #可以是隨便對文件的操作

f = open("data.txt","r")   #設置文件對象

str = f.read()     #將txt文件的所有內容讀入到字元串str中

f.close()   #將文件關閉

f = open("data.txt","r")   #設置文件對象

line = f.readline()

line = line[:-1]

while line:             #直到讀取完文件

     line = f.readline()  #讀取一行文件,包括換行符

     line = line[:-1]     #去掉換行符,也可以不去

f.close() #關閉文件

data = []

for line in open("data.txt","r"): #設置文件對象並讀取每一行文件

     data.append(line)               #將每一行文件加入到list中

 f = open("data.txt","r")   #設置文件對象

 data = f.readlines()  #直接將文件中按行讀到list里,效果與方法2一樣

 f.close()             #關閉文件

可以使用pandas的.read_csv,讀取文件的時候可以給每一列起名字,通過列名來調取相應列的數據。

import pandas as pd

data = pd.read_csv(" OSDO1012.txt",sep=',',header=None, names=['lat','lon','time','z']

使用data.lat就可以讀取名為lat這一列的數據

 data = np.loadtxt("data.txt",skiprows = 1)   #將文件中數據載入到data數組里,並且跳過第一行

 with open('data.txt','w') as f:    #設置文件對象

    f.write(str)                 #將字元串寫入文件中

data = ['a','b','c']

單層列表寫入文件

with open("data.txt","w") as f:

    f.writelines(data)

每一項用空格隔開,一個列表是一行寫入文件

data =[ ['a','b','c'],['a','b','c'],['a','b','c']]

with open("data.txt","w") as f:                      #設置文件對象

     for i in data:                                    #對於雙層列表中的數據

      i = str(i).strip('[').strip(']').replace(',','').replace('\'','')+'\n'  #將其中每一個列表規范化成字元串

     f.write(i)                      #寫入文件

直接將每一項都寫入文件

data =[ ['a','b','c'],['a','b','c'],['a','b','c']]

with open("data.txt","w") as f:                    #設置文件對象

     for i in data:                                      #對於雙層列表中的數據

          f.writelines(i)                            #寫入文件

np.savetxt("data.txt",data)     #將數組中數據寫入到data.txt文件

np.save("data.txt",data)        #將數組中數據寫入到data.txt文件

I. 使用 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

J. 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'])

(10)python怎麼讀文件擴展閱讀:

python控制語句

1、if語句,當條件成立時運行語句塊。經常與else, elif(相當於else if) 配合使用。

2、for語句,遍歷列表、字元串、字典、集合等迭代器,依次處理迭代器中的每個元素。

3、while語句,當條件為真時,循環運行語句塊。

4、try語句,與except,finally配合使用處理在程序運行中出現的異常情況。

5、class語句,用於定義類型。

6、def語句,用於定義函數和類型的方法。

熱點內容
動態密碼什麼 發布:2024-11-01 14:40:47 瀏覽:855
java二值化 發布:2024-11-01 14:39:14 瀏覽:322
安卓文明重啟哪裡下載 發布:2024-11-01 14:39:11 瀏覽:66
php獲取ip伺服器 發布:2024-11-01 14:38:13 瀏覽:442
萬科海上傳奇二期 發布:2024-11-01 14:22:52 瀏覽:59
u盤文件夾是空的 發布:2024-11-01 14:19:57 瀏覽:402
python包含字元串 發布:2024-11-01 14:19:17 瀏覽:479
c語言的精華 發布:2024-11-01 14:19:02 瀏覽:588
steam截圖文件夾 發布:2024-11-01 14:18:59 瀏覽:613
ipad怎麼往安卓傳照片 發布:2024-11-01 14:18:19 瀏覽:508