python一道关于文件中最长行的问题
来源:互联网 发布:广联达梦龙网络计划 编辑:程序博客网 时间:2024/05/22 01:37
题目
可以自己利用程序定位到一个文件夹,并在文件夹下查找特定的文件并计算出所查找的特定文件的最长一行的长度。
为了测试,建立了一个filetest.py的文件夹,文件夹里面存了三个HTML文件。首先利用
os.chdir('C:/Users/.../filetest.py)
更换一下当前目录,原目录为python所在的目录,现在把它更换到我们要测试的文件夹。把当前工作目录复制给now_file方便以后用os.path.join(path1, path2)
弄出完整目录(方便打开文件)。
import ospath = os.chdir('C:/Users/.../filetest.py')now_file = os.getcwd()longest = 0for each in os.listdir('.'): if os.path.isfile(each) and os.path.splitext(each)[1] == '.html': #筛选HTML文件并判断是否为文件# f = open(os.path.join(now_file, each), 'r') for eachline in f: linelen = len(eachline) if linelen > longest: longest = linelen print(longest)print('在所有的.py文件中最长的一行长度为: ' + str(longest))
优化方案。当文件小的时候可以这样做,但是当文件大时并不能这样做。为什么?因为在读取文件时,
for eachline in f:
这段代码会把文件的所有行读取到内存中,这样会造成浪费。这时候就需要用到生成器了。
import ospath = os.chdir('C:/Users/.../filetest.py')now_file = os.getcwd()longest = 0L = []for each in os.listdir('.'): if os.path.isfile(each) and os.path.splitext(each)[1] == '.html': longest = max(len(eachline) for eachline in open(os.path.join(now_file, each))) L.append(longest) print(longest)print('在所有的.py文件中最长的一行长度为: ' + str(max(L)))
注意要把每个文件中最长的行的长度传到list里面,然后再用
max(list)
找出所有文件中最长的行的长度。
73243在所有的HTML文件中最长的一行长度为: 43
当然啦,还有一点要注意千万不要算.py文件里的最长行,会得不到正确的结果。(我也不知道为啥)
阅读全文
0 0
- python一道关于文件中最长行的问题
- python一道关于颠倒字典中键值的问题
- python一道关于文件操作的题
- python一道关于异常处理的问题
- Python 获取文件中最长行的长度和最长行
- Python中一道关于字符串分割的题目
- 关于Python读取文件的路径中斜杠问题
- 一道关于初始化的问题
- 一道关于素数的问题
- 关于寻找两个字符串中最长子序列的问题
- 5种关于字符串中“最长”问题的解法
- 5种关于字符串中“最长”问题的解法
- python一道关于随机数的练习题
- python一道关于标识符检查的题
- python一道关于堆栈的题
- python一道关于字典的题
- python一道关于编写计算器的题
- python一道关于map()的题
- Ice_cream’s world II
- Java虚拟机---初识Java
- Pub crawl
- 堆和栈
- php入门
- python一道关于文件中最长行的问题
- java 学习笔记-servlet翻页小Demo
- java Maven Tomcat JAVA_HOME not found in your environment. 错误
- 欢迎使用CSDN-markdown编辑器
- 微信开发(1)-获取openid和userinfo
- 记Linnux下C++转Windows各种心得
- Deep Neural Networks for Object Detection论文翻译
- 第十五周 leetcode 77. Combinations(Medium)
- 累