python—文件

1 . 文件的基本操作:
文件讀取三部曲:

  1. 打開
  2. 操作
  3. 關閉(如果不關閉會占用文件描述符)

打開文件:

f = open('/tmp/passwdd','w')

操作文件:

1 . 讀操作:  f.read()content = f.read()print(content)
2 . 寫操作:f.write('hello')

關閉:

f.close()

2 . 文件的讀寫:

r(默認參數):
-只能讀,不能寫
-讀取文件不存在 會報錯
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/westos'
r+ :
-r/w
-文件不存在,報錯
-默認情況下,從文件指針所在位置開始寫入w(寫)
-write only
-文件不存在的時候,會自動創建新的文件
-文件存在的時候,會清空文件內容并寫入新的內容
w+ :
-r/w
-文件不存在,不報錯
-會清空文件內容a(追加):
-write only
-寫:不會清空文件的內容,會在文件末尾追加
-寫:文件不存在,不會報錯,會創建新的文件并寫入內容
a+ :
-r/w
-文件不存在,不報錯
-不會清空文件,在末尾追加

查看文件是否可讀可寫:

f = open('/etc/passwd')
print(f.writable())
print(f.readable())運行結果:
False
True

如果讀取是 圖片 音頻 視頻(非純文本文件)
需要通過二進制的方式讀取和寫入
-讀取純文本

    r r+ w w+ a a+ == rt rt+ wt wt+ at at+

-讀取二進制文件

	  rb rb+ wb wb+ ab ab+

先讀取二進制文件內容
f1 = open(‘hello.jpg’,mode=‘rb’)
content = f1.read()
f1.close()

f2 = open(‘lucky.jpg’,mode=‘wb’)
寫入要復制的文件的內容
f2.write(content)
f2.close()

3 . 移動文件指針

seek方法,移動指針seek的第一個參數是偏移量:>0,表示向右移動,<0表示向左移動seek的第二個參數是:0:移動指針到文件開頭1:不移動指針2:移動指針到末尾
f = open('file.txt','r+')
print(f.tell())
print(f.read(3))
print(f.tell())f.seek(0,1)
print(f.tell())f.close()運行結果:
0
qwd
3
3

4 . 上下文管理器
打開文件,執行完with語句內容之后,自動關閉文件。不用寫close關閉文件,更方便。

f = open('/tmp/passwd')
with open('/tmp/passwd') as f:print(f.read())
#同時打開兩個文件
with open('/tmp/passwd') as f1,\open('/tmp/passwd1','w+') as f2:#將第一個文件的內容寫入第二個文件中f2.write(f1.read())#移動指針到文件最開始f2.seek(0)#讀取文件內容print(f2.read())

練習題:
1.讀取文件的內容,返回一個列表,并且去掉后面的“\n”

f = open('file.txt')
#1
print(list(map(lambda x:x.strip(),f.readlines())))
#2
print([line.strip() for line in f.readlines()])
f.close()運行結果:
['qwdeqdewfd', 'fewfwafsDfgb', 'ergeewqrwq32r53t', 'fdst542rfewg']
[]

2 . 創建文件data.txt 文件共10行,
每行存放以一個1~100之間的整數

import randomf = open('data.txt','a+')
for i in range(10):f.write(str(random.randint(1,100)) + '\n')
# 移動文件指針
f.seek(0,0)
print(f.read())
f.close()

3 . 生成100個MAC地址并寫入文件中,MAC地址前6位(16進制)為01-AF-3B
01-AF-3B-xx-xx-xx
-xx
01-AF-3B-xx
-xx
01-AF-3B-xx-xx
-xx
01-AF-3B-xx-xx-xx

import string
import random# hex_num = string.hexdigits
# print(hex_num)
def create_mac():MAC = '01-AF-3B'# 生成16進制的數hex_num = string.hexdigitsfor i in range(3):# 從16進制字符串中隨即選出兩個數字來# 返回值是列表n = random.sample(hex_num, 2)# 拼接列表中的內容,將小寫的字母轉換成大寫的字母sn = '-' + ''.join(n).upper()MAC += snreturn MAC# 主函數:隨即生成100個MAC地址
def main():# 以寫的方式打開一個文件with open('mac.txt', 'w') as f:for i in range(100):mac = create_mac()print(mac)# 每生成一個MAC地址,存入文件f.write(mac + '\n')main()

4 . 京東二面編程題
1 . 生成一個大文件ips.txt,要求1200行,每行隨機為172.25.254.0/24段的ip;
2 . 讀取ips.txt文件統計這個文件中ip出現頻率排前10的ip;

import randomdef create_ip_file(filename):ips = ['172.25.254.' + str(i) for i in range(0,255)]print(ips)with open(filename,'a+') as f:for count in range(1200):f.write(random.sample(ips,1)[0] + '\n')create_ip_file('ips.txt')def sorted_ip(filename,count=10):ips_dict = dict()with open(filename) as f:for ip in f:if ip in ips_dict:ips_dict[ip] += 1else:ips_dict[ip] = 1sorted_ip = sorted(ips_dict.items(),key= lambda x:x[1],reverse=True)[:count]return sorted_ip
print(sorted_ip('ips.txt',20))

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542086.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542086.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542086.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基本概念學習(7000)--P2P對等網絡

對等網絡&#xff0c;即對等計算機網絡&#xff0c;是一種在對等者&#xff08;Peer&#xff09;之間分配任務和工作負載的分布式應用架構[1] &#xff0c;是對等計算模型在應用層形成的一種組網或網絡形式。“Peer”在英語里有“對等者、伙伴、對端”的意義。因此&#xff0c;…

c語言for循環++_C ++程序使用循環查找數字的冪

c語言for循環Here, we are going to calculate the value of Nth power of a number without using pow function. 在這里&#xff0c;我們將不使用pow函數來計算數字的N 次冪的值 。 The idea is using loop. We will be multiplying a number (initially with value 1) by t…

廈門one_理想ONE真是“500萬內最好的車”?

提起羅永浩&#xff0c;不少人還停留在“砸冰箱、造手機”等早期事件。隨著網絡直播的興起&#xff0c;羅永浩轉戰直播帶貨行業&#xff0c;但老羅畢竟是老羅&#xff0c;雷人語錄一點沒比以前少。前一段時間&#xff0c;羅永浩在微博中稱&#xff1a;“理想ONE是你能在這個價位…

Data Collection

眾所周知&#xff0c;計算機領域論文是要以實驗為基礎的&#xff0c;而實驗的原料就是數據。不管是在圖像&#xff0c;文字或者語音領域&#xff0c;開源的數據都十分寶貴和重要。這里主要收集各領域的一些常用的公開數據集。 計算機視覺&#xff1a; 【ImageNet】 【Caltech P…

python—os模塊、時間模塊

os模塊 作用&#xff1a;os模塊是python標準庫中的一個用于訪問操作系統功能的模塊&#xff0c; os模塊提供了其他操作系統接口&#xff0c;可以實現跨平臺訪問。 使用&#xff1a; 1 . 返回操作系統類型 &#xff1a;os.name 值為&#xff1a;posix 是linux操作系統 值為&…

kotlin鍵值對數組_Kotlin程序檢查數組是否包含給定值

kotlin鍵值對數組Given an array and an element, we have to check whether array contains the given element or not. 給定一個數組和一個元素&#xff0c;我們必須檢查數組是否包含給定的元素。 Example: 例&#xff1a; Input:arr [34, 56, 7, 8, 21, 0, -6]element to…

enter sleep mode黑屏怎么解決_【linux】 不要再暴力關機了,講講我最近遇到的問題和完美解決方案...

歡迎關注我的個人公眾號&#xff1a;AI蝸牛車前言結束了每天的緊張的工作&#xff0c;這兩天真的有些肝。這兩天打打字&#xff0c;突然感覺手指頭疼起來了&#xff0c;想意識到成天打了十多個小時的鍵盤&#xff0c; 手指頭都疲勞了 之后這兩天基本上除了基本的吃睡&#xff…

重復T次的LIS的dp Codeforces Round #323 (Div. 2) D

http://codeforces.com/contest/583/problem/D 原題&#xff1a;You are given an array of positive integers a1,?a2,?...,?an??T of length n??T. We know that for any i?>?n it is true that ai??ai?-?n. Find the length of the longest non-decreasing …

微擎pc 導入前綴_段覆蓋前綴| 8086微處理器

微擎pc 導入前綴As we already know that the effective address is calculated by appending the segment registers value and adding up the value of the respective offset. But what if we want to choose some other offset than the assigned one. 眾所周知&#xff0…

python—面向對象

面向過程 面向對象&#xff1a; 面向過程&#xff1a;—側重于怎么做&#xff1f; 1.把完成某一個需求的 所有步驟 從頭到尾 逐步實現 2.根據開發要求&#xff0c;將某些功能獨立的代碼封裝成一個又一個函數 3.最后完成的代碼&#xff0c;就是順序的調用不同的函數 特點&#…

5中bug vue_蘋果官網出BUG!這些都只要一兩百元

近日&#xff0c;有網友在網上反饋稱&#xff0c;他發現蘋果官網商城出現了BUG&#xff01;眾多上千元的產品&#xff0c;BUG價只需一兩百元。比如Shure MOTIV MV88 Digital立體聲電容式麥克風配件。正常售價1288元&#xff0c;而BUG后的價格是235元。UBTECH Jimu Astrobot Cos…

常用壓縮,解壓與打包

常用壓縮格式&#xff1a; .zip .zg .bz2 .tar.gz .tar.bz2.zip格式壓縮zip 壓縮文件名 源文件#壓縮文件注&#xff1a;壓縮文件名寫.zip后綴是為了標記該文件的壓縮類型&#xff0c;方便管理。注&#xff1a;在壓縮時有壓縮格式轉換&#xff0c;所以當源文件很小時&#xff0c…

css禁用選中文本_使用CSS禁用文本選擇突出顯示

css禁用選中文本Introduction: 介紹&#xff1a; Texts are the most fundamental elements of any websites or web pages, they form the basis of the web pages or websites because if you don’t write something that you will not be able to present anything. There…

CDN加速實現—varnish

CDN介紹&#xff1a; 1 . 對cdn的理解&#xff1a; CDN的全稱是&#xff08;Content Delivery Network&#xff09;&#xff0c;即內容分發網絡&#xff1b;加速器&#xff0c;反向代理緩存。CDN系統能夠實時的根據網絡流量和各節點的連接&#xff0c;負載狀況以及到用戶的舉例…

3dmax如何拆分模型_3dmax制作裝飾柜1

大家好&#xff0c;今天我來為大家講解一下如何利用3dmax制作裝飾柜。我們需要制作裝飾柜模型&#xff0c;當我們為它添加一個材質后&#xff0c;它就是這樣的效果。單擊創建&#xff0c;選擇圖形&#xff0c;對象為樣條線&#xff0c;選擇矩形在場景中進行創建。單擊修改&…

TODO:macOS上ThinkPHP5和Semantic-UI集成

TODO&#xff1a;macOS上ThinkPHP5和Semantic-UI集成1. 全局安裝 (on OSX via homebrew)Composer 是 homebrew-php 項目的一部分2. 把Xcode升級到8.1后繼續安裝Composer3. 使用composer創建TP5項目MWL-Dispatchcomposer create-project topthink/think MWL-Dispatch4. 配置apac…

np.expm1_JavaScript中帶有示例的Math.expm1()方法

np.expm1JavaScript | Math.expm1()方法 (JavaScript | Math.expm1() Method) Math operations in JavaScript are handled using functions of math library in JavaScript. In this tutorial on Math.expm1() method, we will learn about the expm1() method and its workin…

距離傳感器控制燈泡代碼_生迪全彩智能 LED 燈泡體驗評測

市面上大多數智能燈具無外乎智能控制&#xff0c;冷暖標準區間的簡單調光&#xff0c;僅僅滿足我們日常照明之外&#xff0c;似乎用處不多。如果有一款能在自己房間制造多彩氛圍的燈泡就好了。這次有幸體驗到了華為智能家居生態鏈產品生迪全彩智能 LED 燈泡&#xff0c;才發現彩…

mysql啟動與關閉(手動與自動)

手動管理mysql的啟動與關閉 [rootmysql ~]# service mysql start --手動啟動mysqlStarting MySQL. SUCCESS![rootmysql ~]# service mysql stop --手動關閉mysql Shutting down MySQL.. SUCCESS! [rootmysql ~]# mysqld --verbose --help --查看MySQL的默認參數的具體值 如果每…

JavaScript中帶有示例的Math.round()方法

JavaScript | Math.round()方法 (JavaScript | Math.round() Method) Math.round() is a function in math library of JavaScript that is used to round the given number floating-point number to the nearest integer value. Math.round()是JavaScript數學庫中的函數&…