python问题求大神帮助

suao123 2020-07-09 03:54:05
1.牛牛的文件提取器(6分)
牛牛在处理文件的过程中发现了一个文件提取器app,这个app可以读取中英文混合的文件,并且将里面的英文提取出来,写成一个新的文件,但是有一天他发现自己的app试用期已结束,用不了了,请帮他实现这个app的功能,让他能够快速地处理文件。
...全文
123 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
丶轩 2020-07-14
  • 打赏
  • 举报
回复
你是完全不懂还是那部分不懂。 解题步骤我给你写一下: 1.读取文本() 2.过滤掉中文(正则表达式或者大神写的这个) 3.过滤后的文字写入文本
qq_49182549 2020-07-10
  • 打赏
  • 举报
回复
引用 2 楼 suao123的回复:
没明白。。大神
先读取文件的内容,再使用生成器表达式(char for char in string if ord(char) < 128)进行过滤(其中ord(char) < 128是条件),只剩下ascii英文字符,由于生成器表达式不返回字符串,所以使用''.join进行连接,转为字符串,再写入输出文件
qq_49182549 2020-07-10
  • 打赏
  • 举报
回复
引用 2 楼 suao123的回复:
没明白。。大神
先读取文件的内容,再使用生成器表达式(char for char in string if ord(char) < 128)进行过滤(其中ord(char) < 128是条件),只剩下ascii英文字符,由于生成器表达式不返回字符串,所以使用''.join进行连接,转为字符串,再写入输出文件
qq_49182549 2020-07-10
  • 打赏
  • 举报
回复
引用 3 楼 欢乐的小猪的回复:
for循环有个缩进的
with open('input.txt',encoding='utf-8') as fp:
    string = fp.read()
    with open('output.txt', 'w') as fp:
        fp.write(''.join(char for char in string if ord(char) < 128))
列表推导式不需要缩进
欢乐的小猪 2020-07-09
  • 打赏
  • 举报
回复
for循环有个缩进的
with open('input.txt',encoding='utf-8') as fp:
    string = fp.read()
    with open('output.txt', 'w') as fp:
        fp.write(''.join(char for char in string if ord(char) < 128))
suao123 2020-07-09
  • 打赏
  • 举报
回复
没明白。。大神
qq_49182549 2020-07-09
  • 打赏
  • 举报
回复
with open('input.txt') as fp:
    string = fp.read()
with open('output.txt', 'w') as fp:
    fp.write(''.join(char for char in string if ord(char) < 128))
可能需要在oepn函数参数里面加上encoding="utf-8"或encoding="gbk"指定文件编码

37,722

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧