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);
}