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

歡迎訪問 生活随笔!

生活随笔

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

python

python自动化第三周---文件读写

發布時間:2023/12/13 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python自动化第三周---文件读写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.python文件對象提供了三個“讀”方法: read()、readline() 和 readlines()。每種方法可以接受一個變量以限制每次讀取的數據量。

  • read() 每次讀取整個文件,它通常用于將文件內容放到一個字符串變量中。如果文件大于可用內存,為了保險起見,可以反復調用read(size)方法,每次最多讀取size個字節的內容。
  • readlines() 之間的差異是后者一次讀取整個文件,象 .read() 一樣。.readlines() 自動將文件內容分析成一個行的列表,該列表可以由 Python 的 for ... in ... 結構進行處理。
  • readline() 每次只讀取一行,通常比readlines() 慢得多。僅當沒有足夠內存可以一次讀取整個文件時,才應該使用 readline()。

這三種方法是把每行末尾的'\n'也讀進來了,它并不會默認的把'\n'去掉,需要我們手動去掉。

with open('test1.txt', 'r') as f1:list1 = f1.readlines() for i in range(0, len(list1)):list1[i] = list1[i].rstrip('\n')

2.由于文件讀寫時都有可能產生IOError,一旦出錯,后面的f.close()就不會調用。所以,為了保證無論是否出錯都能正確地關閉文件,我們可以使用try ... finally來實現:

try:f = open('/path/to/file', 'r')print(f.read()) finally:if f:f.close()
但是每次都這么寫實在太繁瑣,所以,Python引入了with語句來自動幫我們調用close()方法: with open('/path/to/file', 'r') as f:print(f.read())
3.

一個python面試題的例子:

有兩個文件,每個都有很多行ip地址,求出兩個文件中相同的ip地址:

# coding:utf-8
import bisect

with open('test1.txt', 'r') as f1:
list1 = f1.readlines()
for i in range(0, len(list1)):
list1[i] = list1[i].strip('\n')
with open('test2.txt', 'r') as f2:
list2 = f2.readlines()
for i in range(0, len(list2)):
list2[i] = list2[i].strip('\n')

list2.sort()
length_2 = len(list2)
same_data = []
for i in list1:
pos = bisect.bisect_left(list2, i)
if pos < len(list2) and list2[pos] == i:
same_data.append(i)
same_data = list(set(same_data))
print(same_data)

?

轉載于:https://www.cnblogs.com/awen2968/p/10001589.html

總結

以上是生活随笔為你收集整理的python自动化第三周---文件读写的全部內容,希望文章能夠幫你解決所遇到的問題。

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