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

python讀取文本文件

發布時間: 2022-09-27 06:29:42

python中的文件讀寫-理論知識

Python處理兩種不同類型的文件:二進制文件和文本文件。了解兩者之間的差異很重要,因為它們的處理方式不同。

二進制文件

在正常計算機使用期間使用的大多數文件實際上是二進制文件,而不是文本。比如:Microsoft Word .doc文件實際上是一個二進制文件,即使它只有文本。

二進制文件的其他示例包括:

圖像文件,包括.jpg,.png,.bmp,.gif,等。

資料庫文件包括.mdb,.frm和.sqlite

文件,包括.doc,.xls,.pdf或者其他文件。

那是因為這些文件都有特殊處理的要求,需要特定類型的軟體來打開它。例如,您需要Excel來打開.xls文件,並使用資料庫程序來打開.sqlite文件。

文本文件

一方面,沒有特定的編碼,可以通過沒有任何特殊處理的標准文本編輯器打開。但是,每個文本文件都必須遵守一組規則:

文本文件必須是可讀的。他們可以(並且經常會)包含許多特殊編碼,尤其是在HTML或其他標記語言中,但您仍然可以說出它的含義

文本文件中的數據按行組織。在大多數情況下,每一行都是一個獨特的元素,無論是指令行還是命令。

此外,文本文件在每行的末尾都有一個看不見的字元,這使文本編輯器知道應該有一個新行。通過編程與這些文件交互時,您可以利用該字元。在Python中,它用「 n」 表示。

在哪裡可以找到Python的文件I / O工具

在Python中工作時,您不必擔心導入任何特定的外部庫來處理文件。Python附帶有「文件庫」,文件I / O工具和實用程序是核心語言的內置部分。

但是在其他語言(如C ++)中,要處理文件,您必須通過包含正確的頭文件來啟用文件I / O工具#include <fstream>。如果您使用java編寫代碼,則需要使用該import java.io.*語句。

使用Python,就沒有必要這樣做,這是因為Python有一組內置函數,可以處理讀取和寫入文件所需的所有內容。

㈡ 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()

㈢ python讀取TXT內容後怎麼計算裡面數據

㈣ 用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()

㈤ 用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()

㈥ python讀取TXT內容後怎麼計算裡面數據

不公用panda,所以直接用列表和字典來寫

#最終統計後的結果,字典格式
procts = {}
#讀取的記錄,列表格式
records = []
#讀取文件的每一行,列表格式
lines = []

#讀取文件,將所有內容寫入列表records
with open("proctinfo.txt","r") as f:
#循環讀取
while True:
line = f.readline()
#讀到結尾退出循環
if not line:
break
#如果每行的內容結尾有換行符就捨去
if line[-1] == '\n':
line = line[:-1]
#把每行的數據以逗號為標志分割
lines = line.split(',')
#把分割的數據追加到列表
records.append(lines)

#遍歷讀到的結果,將結果經過計算後寫入字典procts
for record in records:
#每條記錄的第一項作為字典的KEY,如果這個KEY在字典中就在基礎上增加值
if record[0] in procts:
procts[record[0]]['total_sales'] += eval(record[2])
procts[record[0]]['total_money'] += eval(record[1]) * eval(record[2])
#如果這個KEY不在字典,就設置為record原值
else:
procts[record[0]] = {'total_sales':eval(record[2]),'total_money':eval(record[1]) * eval(record[2])}

#排序
sales=sorted(procts.items(), key=lambda x:x[1]['total_sales'])
print("最大銷量商品編號:", sales[-1][0],"銷量:",sales[-1][1]['total_sales'])
print("最低銷量商品編號:", sales[0][0],"銷量:",sales[0][1]['total_sales'])

㈦ python怎麼讀取txt文件

方法一:


f=open("foo.txt")#返回一個文件對象
line=f.readline()#調用文件的readline()方法
whileline:
printline,#後面跟','將忽略換行符
#print(line,end='')#在Python3中使用
line=f.readline()

f.close()

方法二:
for line in open("foo.txt"):
print line,

方法三:

f=open("c:\1.txt","r")

lines=f.readlines()#讀取全部內容

forlineinlines

printline

黑馬程序員的Python課程非常的全面系統,網上也有很多的免費教程,想學習的小夥伴,可以下載學習下。

㈧ Python如何讀寫文本文件

1.open使用open打開文件後一定要記得調用文件對象的close()方法。比如可以用try/finally語句來確保最後能關閉文件。
file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
註:不能把open語句放在try塊里,因為當打開文件出現異常時,文件對象file_object無法執行close()方法。
2.讀文件讀文本文件input = open('data', 'r')
#第二個參數默認為r
input = open('data')

讀二進制文件input = open('data', 'rb')
讀取所有內容file_object = open('thefile.txt')
try:
all_the_text = file_object.read( )
finally:
file_object.close( )
讀固定位元組file_object = open('abinfile', 'rb')
try:
while True:
chunk = file_object.read(100)
if not chunk:
break
do_something_with(chunk)
finally:
file_object.close( )
讀每行list_of_all_the_lines = file_object.readlines( )
如果文件是文本文件,還可以直接遍歷文件對象獲取每行:
for line in file_object:
process line
3.寫文件寫文本文件output = open('data.txt', 'w')
寫二進制文件output = open('data.txt', 'wb')
追加寫文件output = open('data.txt', 'a')

output .write("\n都有是好人")

output .close( )

寫數據file_object = open('thefile.txt', 'w')
file_object.write(all_the_text)
file_object.close( )

㈨ 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'])

(9)python讀取文本文件擴展閱讀:

python控制語句

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

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

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

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

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

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

㈩ python讀取文本文件,如何將每行最後一個特定字元替換

方法:

解釋,s.count('/')計算原來有多少個特定字元串,然後第一步全部替換,第二步將count-1個還原

熱點內容
oracle分頁sql怎麼寫 發布:2024-12-27 11:02:02 瀏覽:845
伺服器如何遠程集中管理 發布:2024-12-27 11:00:26 瀏覽:889
android解鎖代碼 發布:2024-12-27 10:58:25 瀏覽:739
linuxusb攝像頭的驅動 發布:2024-12-27 10:58:13 瀏覽:5
斗羅電腦版伺服器 發布:2024-12-27 10:57:26 瀏覽:32
linux添加日誌伺服器地址 發布:2024-12-27 10:52:35 瀏覽:563
dlink路由器初始密碼怎麼修改 發布:2024-12-27 10:49:56 瀏覽:213
java簡訊介面源碼 發布:2024-12-27 10:49:05 瀏覽:441
米8安卓8刷安卓9怎麼刷 發布:2024-12-27 10:49:04 瀏覽:454
阿里雲伺服器其他賬號託管 發布:2024-12-27 10:37:22 瀏覽:722