欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python3中簡單的文件操作及兩個簡單小實(shí)例分享

 更新時間:2017年06月18日 15:31:15   作者:SherlockBlaze  
文件操作是我們?nèi)粘T谑褂胮ython的時候經(jīng)常會用到的,下面這篇文章主要給大家介紹了關(guān)于Python3中簡單的文件操作及兩個簡單小實(shí)例的相關(guān)資料,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。

前言

首先介紹一下什么叫做相對路徑和絕對路徑,我們程序狗家族想必都是懂這個的,但是難免會有童鞋忘記。所以碼出來供大家快速回憶一下。

相對路徑

相對路徑是相對于文件當(dāng)前的工作路徑而言的

絕對路徑

絕對路徑是由文件名和它的完整路徑以及驅(qū)動器字母組成的,如果是Windows系統(tǒng),那么某一個文件的絕對路徑可能是:

c:\pythonworkspace\firstpy.py

在Unix平臺上,文件的絕對路徑可能是: /home/sherlockblaze/Documents/pythonworkspace/firstpy.py

文件類型

文件大概可以分為文本文件和二進(jìn)制文件。在不同操作系統(tǒng)下,可以用文本編輯器編輯的文件,都稱為文本文件,那么其他的文件就屬于二進(jìn)制文件。而二進(jìn)制文件相比與文本文件的優(yōu)勢在于二進(jìn)制文件的處理效率更高一些。

讀取文件的開始

讀取一個文件的思路永遠(yuǎn)都是相同的,第一步自然就是打開一個文件。在python中我們通過如下代碼使用open函數(shù)來打開一個文件。

input = open(filepath,mode)

我們的mode主要由以下幾種方式。

模式 作用
r 讀取模式
w 寫入模式
a 追加模式
rb 讀取二進(jìn)制數(shù)據(jù)模式打開文件
wb 寫入二進(jìn)制數(shù)據(jù)模式打開文件

同樣我們有兩種途徑來打開文件。

通過絕對路徑

input = open("/Users/sherlockblaze/Documents/pythonworkspace/Test.txt","r")

通過相對路徑(需要注意的是,我們通過相對路徑是可以打開當(dāng)前工作目錄下的文件的,也就是說如果我的.py文件存在 /User/sherlock/Documents 下的話,我們通過相對路徑打開的文件也同樣存在當(dāng)前路徑下)

input = open("Test.txt","r")

注意

在Windows下我們通過絕對路徑來打開文件的時候,我們需要在絕對文件名前加上一個 r 前綴,來表示這個字符串是一個行字符串,這樣可以讓python解釋器將文件中的反斜線理解成字面意義上的反斜線。例如:

input = open(r"d:\pythonworkspace\Test.txt","r")

如果我們不添加 r 作為前綴,則需要用轉(zhuǎn)義字符把上面的語句修改成如下所示:

input = open("d:\\pythonworkspace\\Test.txt","r")

向文件中寫入數(shù)據(jù)

我們首先通過寫入的方式打開文件,然后通過調(diào)用write方法,向文件中寫入數(shù)據(jù)。

def main():
 input = open("Test.txt","w")
 input.write("SherlockBlaze")
 input.write("\t is the most handsome guy!\n")
 input.close()
 
main()

通過這種方式,我們往當(dāng)前目錄下的 Test.txt 文件中寫入了 SherlockBlaze is the most handsome guy! 這句話,并且需要注意的是,我們在寫完文件后,調(diào)用close()方法關(guān)閉了文件流。

常見小特性

當(dāng)使用w模式打開一個文件時,如果文件不存在,open函數(shù)就會創(chuàng)建一個新文件,如果該文件存在,那么這個文件里的內(nèi)容會被心的內(nèi)容覆蓋。當(dāng)我們用讀/寫模式打開文件的時候,文件內(nèi)部會添加一個叫做文件指針的特殊標(biāo)記,文件的讀寫操作都發(fā)生在指針當(dāng)前位置上。

判斷文件是否存在

為了避免誤操作,我們可以通過os.path模塊中的isFile函數(shù)來判斷一個文件是否存在。即:

import os.path
is os.paht.isfile("Test.txt"):
 print("Test.txt exists")
else:
 print("Test.txt doesn't exists")

簡單小程序

輸入文件路徑,并且從中計(jì)算各個字母出現(xiàn)的次數(shù)

def main():
 filename = input("Enter a filename: ").strip()
 infile = open(filename,"r")
 counts = 26 * [0]
 for line in infile:
 countLetters(line.lower(),counts)
 for i in range(len(counts)):
 if counts[i] != 0:
 print(chr(ord('a') + i) + "appears " + str(counts[i])
 + (" time" if counts[i] == 1 else " times"))
 infile.close()
def countLetters(line,counts):
 for ch in line:
 if ch.isalpha():
 counts[ord(ch) - ord('a')] += 1
main()

思路簡單敘述:首先創(chuàng)建數(shù)組,每當(dāng)讀取到一個字符,對對應(yīng)位置的數(shù)字進(jìn)行加一,最后在進(jìn)行遍歷得到輸出。

下載網(wǎng)站源代碼,然后寫入目的文件中

import sys
import urllib
import urllib.request
import os.path
def download(url,num_retries = 2):
 print ('Downloading:',url)
 try:
 html = urllib.request.urlopen(url).read()
 except urllib.URLError as e:
 print ('Download error:',e.reason)
 html = None
 if num_retries > 0:
 if hasattr(e,'code') and 500 <= e.code <600:
 return download(url,num_retries-1)
 return html
def main():
 url = input("Enter a url:\n").strip()
 f2 = input("Enter a target file:\n").strip()
 if os.path.isfile(f2):
 print(f2 + " already exists")
 sys.exit()
 html = download(url)
 target = open(f2,"w")
 content = html.decode(encoding="utf-8")
 target.write(content)
 target.close()
main()

比如我輸入網(wǎng)址 http://www.game2.cn/,在輸入目的文件:game2.txt。即可進(jìn)行下載并把對應(yīng)html輸入到當(dāng)前工作目錄的game2.txt文件中。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • 分布式全文檢索引擎ElasticSearch原理及使用實(shí)例

    分布式全文檢索引擎ElasticSearch原理及使用實(shí)例

    這篇文章主要介紹了分布式全文檢索引擎ElasticSearch原理及使用實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Python標(biāo)準(zhǔn)庫筆記struct模塊的使用

    Python標(biāo)準(zhǔn)庫筆記struct模塊的使用

    這篇文章主要介紹了Python標(biāo)準(zhǔn)庫筆記struct模塊的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • Pytorch卷積神經(jīng)網(wǎng)絡(luò)resent網(wǎng)絡(luò)實(shí)踐

    Pytorch卷積神經(jīng)網(wǎng)絡(luò)resent網(wǎng)絡(luò)實(shí)踐

    這篇文章主要為大家介紹了Pytorch卷積神經(jīng)網(wǎng)絡(luò)resent網(wǎng)絡(luò)實(shí)踐,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 淺談python3發(fā)送post請求參數(shù)為空的情況

    淺談python3發(fā)送post請求參數(shù)為空的情況

    今天小編就為大家分享一篇淺談python3發(fā)送post請求參數(shù)為空的情況,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python圖像運(yùn)算之頂帽運(yùn)算和底帽運(yùn)算詳解

    Python圖像運(yùn)算之頂帽運(yùn)算和底帽運(yùn)算詳解

    數(shù)學(xué)形態(tài)學(xué)是應(yīng)用于圖像處理和模式識別領(lǐng)域的新方法。數(shù)學(xué)形態(tài)學(xué)表示以形態(tài)為基礎(chǔ)對圖像進(jìn)行分析的數(shù)學(xué)工具,基本思想是用具有一定形態(tài)的結(jié)構(gòu)元素去量度和提取圖像中對應(yīng)形狀以達(dá)到對圖像分析和識別的目的。本文將為大家介紹頂帽運(yùn)算和底帽運(yùn)算,需要的可以參考一下
    2022-07-07
  • python開發(fā)游戲的前期準(zhǔn)備

    python開發(fā)游戲的前期準(zhǔn)備

    在本篇文章中我們給大家分享了關(guān)于python開發(fā)游戲的前期準(zhǔn)備以及用到的工具等內(nèi)容,需要的朋友們跟著參考下。
    2019-05-05
  • Python3中的多行輸入問題

    Python3中的多行輸入問題

    這篇文章主要介紹了Python3中的多行輸入問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python函數(shù)返回值實(shí)例分析

    Python函數(shù)返回值實(shí)例分析

    這篇文章主要介紹了Python函數(shù)返回值,實(shí)例分析了Python中返回一個返回值與多個返回值的方法,需要的朋友可以參考下
    2015-06-06
  • Python 3中print函數(shù)的使用方法總結(jié)

    Python 3中print函數(shù)的使用方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于Python 3中print函數(shù)的使用方法,python3中的print函數(shù)和之前版本的用法相差很多,本文通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-08-08
  • Python計(jì)算IV值的示例講解

    Python計(jì)算IV值的示例講解

    今天小編就為大家分享一篇Python計(jì)算IV值的示例講解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02

最新評論