問題:
1.路徑問題以及獲取路徑問題
**注:argv[0]只是得到的是當前指令碼的絕對位置;而os模組中的幾種獲得路徑的方法,得到的是當前的工作目錄,如:open(『1.txt』,』r』),則會在當前工作目錄查詢該檔案。即大部分的檔案操作都是相對於當前工作路徑。
若要改變當前工作路徑,可以用:os.chdir(path) 。如os.chdir(e:\program files),則大部分的檔案操作就會是相對於e:\dir1。fobj = open(『hello.txt』),實際會開啟e:\program files\hello.txt檔案。**
來自:
#coding:utf-8
import os
path = 'c:\python27\lib\site-packages\mylibrary'
print os.path.abspath(path) #返回絕對路徑
print os.path.basename(path) #返回檔名
'os.path.commonprefix(list) #返回list(多個路徑)中,所有path共有的最長的路徑。'
print os.path.dirname(path) #返回檔案路徑
print os.path.exists(path) #路徑存在則返回true,路徑損壞返回false
print os.path.lexists #路徑存在則返回true,路徑損壞也返回true
print os.path.expanduser(path) #把path中包含的"~"和"~user"轉換成使用者目錄
print os.path.expandvars(path) #根據環境變數的值替換path中包含的」$name」和」$」
print os.path.getatime(path) #返回最後一次進入此path的時間。
print os.path.getmtime(path) #返回在此path下最後一次修改的時間。
print os.path.getctime(path) #返回path的大小
print os.path.getsize(path) #返回檔案大小,如果檔案不存在就返回錯誤
print os.path.isabs(path) #判斷是否為絕對路徑
print os.path.isfile(path) #判斷路徑是否為檔案
print os.path.isdir(path) #判斷路徑是否為目錄
print os.path.islink(path) #判斷路徑是否為鏈結
print os.path.ismount(path) #判斷路徑是否為掛載點()
'os.path.join(path1[, path2[, ...]]) #把目錄和檔名合成乙個路徑'
print os.path.normcase(path) #轉換path的大小寫和斜槓
print os.path.normpath(path) #規範path字串形式
print os.path.realpath(path) #返回path的真實路徑
'os.path.relpath(path[, start]) #從start開始計算相對路徑'
'os.path.samefile(path1, path2) #判斷目錄或檔案是否相同'
'os.path.sameopenfile(fp1, fp2) #判斷fp1和fp2是否指向同一檔案'
'os.path.samestat(stat1, stat2) #判斷stat tuple stat1和stat2是否指向同乙個檔案'
print os.path.split(path) #把路徑分割成dirname和basename,返回乙個元組
print os.path.splitdrive(path) #一般用在windows下,返回驅動器名和路徑組成的元組
print os.path.splitext(path) #分割路徑,返回路徑名和副檔名的元組
print os.path.splitunc(path) #把路徑分割為載入點與檔案
'os.path.walk(path, visit, arg) #遍歷path,進入每個目錄都呼叫visit函式,visit函式必須有'
#3個引數(arg, dirname, names),dirname表示當前目錄的目錄名,names代表當前目錄下的所有
#檔名,args則為walk的第三個引數
print os.path.supports_unicode_filenames #設定是否支援unicode路徑名
(一)
data.json不存在,便建立並寫入json格式的預設引數
import os
import json
name = 'data.json'
ifnot(os.path.exists(name) and os.path.isfile(name)):
with
open(name, 'w') as f:
f.write('["如果data.json不存在,便建立並寫入json格式的預設引數。"]')
with
open(name, 'r') as f:
cfg = json.load(f)#讀取data.json
print(cfg)
windows系統的位址列能夠識別單反斜槓」\」,而不能識別雙反斜槓」\」,這是系統檔案系統自身的約定,路徑層次使用「\」區分而不是使用「\」來區分:
所以f:\office\trunk__out\pro debug\bin\officeinfo.dll這樣是不正確的。
而在程式中,字串中的「\」主要是為了轉義,「\」轉義後被理解為「\」,「\」才能夠被作業系統檔案系統所理解,比如用字串表示上述路徑:「f:\office\trunk\__out\pro debug\bin\officein可以fo.dll」,同理,如果想要表示「\」,可以寫作「\\」。
2.if函式判斷問題,是否執行成功
3.with語句
4.with open語句:
在讀寫檔案時為了保證無論是否出錯都能正確地關閉檔案,我們可以使用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())
可以進行多個檔案同時開啟,並且不用關心檔案有關閉的問題:
with
open('a.txt','r',encoding='utf-8') as f,open('b.txt') as f1:
Python 網路爬蟲 爬取表情包
import requests import os import urllib.parse from bs4 import beautifulsoup 函式 判斷表情包是不是0個 def is zero url test requests.get url msg test.content s bea...
爬蟲 學習爬取表情包
表情包位址 表情位址 1.請求目標 2.匹配不同位址 url def get urls url 1.請求目標 response requests.get url 2.通過正則來匹配不同位址 url 每張共有內容保留,不同的內容用.來匹配 表示匹配任意數量不換行的字元 表示盡可能匹配最短的字元 r u...
爬取表情包
這是我第一次在這寫部落格,還是有點興奮。我也是剛接觸python不久,發現python 真的很強大,簡單就可以處理複雜的事。最近很想寫個爬蟲,但水平沒達到,正好csdn學院有個公開課,黃勇老師講的 90分鐘掌握python多執行緒爬蟲 全程實戰 3月6日晚20 00我聽了直播,當時沒跟上,等看了回播...