shelvepython
1. windows7 python3.6環境下 shelve模塊在腳本運行時報錯
shelve是一個對象持久化保存方法,將對象保存到文件裡面,一般來說對象的保存和恢復都是通過shelve來進行的。
你的問題是test.txt已經存在,並且格式與shelve不符,所以提示 "db type could not be determined"
解決方法: 刪除/home/luo/python/test.txt文件,首次運行後會自動生成該文件。
另外,預設方式數據文件是二進制的,最好不要用txt結尾來誤導別人。
2. python寫一個文件 記錄一個list里數字的大小位置 從大到小 不能用內置函數和sorted
根據列表的長度n生成一個0到n序列號的列表。
然後使用冒泡排序的方法同時對兩個列表排序,排序完成後,序列列表就是你要的。
至於寫入文件,可以使用open按一般文件內容寫入。
但保存的只是一個列表變數,適合使用shelve來保存為data文件,所以使用shelve.open來保存數據。
import shelve
def orderIndex(nums=[]):
n=len(nums)
index=0
indexs=[]
for i in range(n):
indexs.append(index)
index=index+1
for i in range(n):
for j in range(i+1,n):
if(nums[i]<nums[j]):
nSave=nums[i]
nums[i]=nums[j]
nums[j]=nSave
iSave=indexs[i]
indexs[i]=indexs[j]
indexs[j]=iSave
return indexs
print("請輸入一列數字,逗號分割 :")
nums=input().split(',')
print("從大到小排序後的序列為 :")
indexs=orderIndex(nums)
print(indexs)
shelFile=shelve.open('C:mydata')
shelFile['indexs']=indexs
shelFile.close()
print("序列已保存至文件 :C:mydata中")
3. source1是《python基礎教程》上的一個例子,關於shelve模塊的,求大俠解釋下.
Python文檔中有提到這一點(詳見shelve模塊文檔):
Because of Python semantics, a shelf cannot know when a mutable persistent-dictionary entry is modified. By default modified objects are written only when assigned to the shelf.
大致意思如下:
一個shelf(對象)無法知道什麼時候其中一個可變的項被修改了。默認情況下,一個被修改過的對象只有重新賦給shelf對象,這些更改才會生效。
Python文檔中也給出了兩種解決方案:
第一種:
把修改過的對象賦給shelve對象:
s['x']=s['x'].append('d')
或者,更清晰的形式:
temp=s['x']#得到s['x']的拷貝,即一個mutable的列表對象
temp.append('d')#在這個列表對象上進行append操作
s['x']=temp#重新寫回去
第二種:
s=shelve.open('temp.dat',writeback=True)#指定writeback為True,默認為False
s['x']=['a','b','c']
s['x'].append('d')
s.close()
這樣,你要訪問的entry就會cached in memory,並在你調用sync或close方法的時候寫入文件。
4. python shelve模塊
應該是你的文件命名問題,不要命名為shelve.py
這樣的話,你import載入的是你本身的文件,你的文件並沒有open這個屬性
5. Python 入門需要學些什麼
Python相對比較簡單,零基礎也能學。系統學習的話,一般4-6個月左右能學好。
建議大家可以從以下三方面來入手:
①先自學一些python書籍
大家可以從書中了解一些基礎知識,建立一些編程認知。
但是這樣的方式,還是難免會因為沒什麼基礎很快就覺得枯燥了,所以在書籍方面還是建議大家結合視頻課程一起來學習,才能更高效一點。
②網上找相關課程
在mooc網學習的是北京理工大學的一門python公開課,整個流程學習下來能夠了解一些基礎相關,但課程比較淺顯,還是感覺有些不系統,也很難靠自學迅速入門。
③報班學習
很多人對網上報班有些排斥,因為難免會覺得會被割韭菜。但是對於零基礎的小白學習python編程而言,跟著專業系統化一點的團隊一起學習,勢必會更省時省力一點的。
畢竟我們沒有基礎,靠自學又沒啥時間去堅持,能有合適的【線上陪伴式】的課程,還是挺值得一試的。建議大家可以先從體驗課開始,了解清楚課程含金量,看看往期學員的體驗回饋後再報班學習。
Python的學習學習順序如下:
①Python軟體開發基礎
②Python軟體開發進階
③Python全棧式WEB工程師
④Python多領域開發
互聯網行業目前還是最熱門的行業之一,學習IT技能之後足夠優秀是有機會進入騰訊、阿里、網易等互聯網大廠高薪就業的,發展前景非常好,普通人也可以學習。
想要系統學習,你可以考察對比一下開設有相關專業的熱門學校,好的學校擁有根據當下企業需求自主研發課程的能力,能夠在校期間取得大專或本科學歷,中博軟體學院、南京課工場、南京北大青鳥等開設相關專業的學校都是不錯的,建議實地考察對比一下。
祝你學有所成,望採納。
6. python shelve沒有open函數了
應該是你的文件命名問題,不要命名為shelve.py
這樣的話,你import載入的是你本身的文件,你的文件並沒有open這個屬性
7. Python需要掌握的庫,都有那些啊
1、Matplotlib:用於創建二維圖和圖形的底層庫,有了它的幫助,你可以構建各種不同的圖標,從直方圖到散點圖再到費笛卡爾坐標圖,它都可以與很多流行的繪圖庫結合使用。
2、Seaborn:包含更適合處理圖標的默認設置,此外還有豐富的可視化庫,包含一些復雜類型,比如說時間序列、聯合分布圖等。
3、Plotly:一個很流行的庫,可以讓你輕松構建復雜的圖形,該軟體包含用於互動式web應用程,可實現輪廓圖、三元圖以及三維圖等效果。
4、Pydot:純Python編寫的Graphviz介面,經常用於生產復雜的定向圖和無向圖,能夠顯示圖形的結構,構建神經網路和基於決策樹的演算法時非常有效。
5、pyecharts:功能非常強大,支持多達400+地圖,支持JupyterNotebook、JupyterLab,可以集成Flask,Sanic,Django等主流Web框架。
6、cufflinks:結合了plotly的強大功能和panda的靈活性,可以方便地進行繪圖,避免了數據可視化過程中,對數據存儲結構和數據類型進行復雜的麻煩。
8. python 用shelve讀取.dat文件中文亂碼問題
「得到的結果是'xb2xe2xcaxd4,並不是我想要的中文」 =》其實,你看到的'xb2xe2xcaxd4『,就已經是你想要的中文了。只不過是GBK編碼的,所以顯示出來的是'測試'這兩個中文字元所對應的GBK編碼的內部的值而已
如果你想要顯示出中文字元,而非內部值的話,可以,先將其轉換為Unicode,就可以看到中文了:
decodedName=Database['name'].decode("GBK")
print"decodedName=",decodedName#decodedName=測試註:
1.不要用那個IDLE,不好用,容易讓你誤解。
2.在直接在cmd下測試即可。
更多的,極其詳盡的解釋,我專門為你寫了教程了。你一看就懂了:
【整理】Python中實際上已經得到了正確的Unicode或某種編碼的字元,但是看起來或列印出來卻是亂碼
(google搜標題即可找到我的帖子了)
9. Python使用shelve文件,運行了幾次後文件體積突然增加一倍,每次存最新的
這個應用可以使用JavaConfig完成配置。我把它切分為下面幾個部分:
ServicesConfig(服務配置)
無需掃描組件,配置真的非常簡單:
@Configuration
public class ServicesConfig {
@Autowired
private AccountRepository accountRepository;
@Bean
public UserService userService() {
return new UserService(accountRepository);
}