|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
背景:任意接受用户输入的文件,统计文件中含有的元素个数
思路:利用Easygui中的fileopenbox函数接受用户输入相关文件,新设置一个对象b,让其等于刚刚打开的文件文件,然后利用for 循环遍历b,使得每一个元素插入到空列表a中,最后利用len()计算列表a的字符串长度,源码如下(测试打开的一个sum.txt的文本)
sum.txt
- import easygui as g
- a=[]
- b=g.fileopenbox(title='字符统计计算器',default='D:/Python/*.txt')
- for each in b:
- a.append(each)
- c=len(a)
- print(c)
复制代码
最后得到的结果为17,这肯定不是我想要的,于是逐步调试程序了,发现对象b并不是copy了sum.txt的内容,而是直接将“D:\\\\Python\\\\sum.txt”整个字符串传递给了b,如图所示
重新改写了一下代码,如下
- a=[]
- b = open('D:\\Python\\sum.txt','r')
- for each in b:
- a.append(each)
- c=len(a)
- print(c)
复制代码
这会结果是5,是对的
那么如果我就想利用方式一实现这个功能,而且也用easygui这个模块,怎么改进代码?
既然对象b是返回的文件地址,那么重新打开一次不就行了?
import easygui as g
a=[]
b=g.fileopenbox(title='字符统计计算器',default='D:/Python/*.txt')
b = open(b)
for each in b:
a.append(each)
c=len(a)
print(c)
|
|