鱼C论坛

 找回密码
 立即注册
查看: 1833|回复: 4

[已解决]大佬们救命!关于用read()读取不了txt文件的问题

[复制链接]
发表于 2021-10-9 23:39:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想把这个py文件放在想处理的文件夹里,然后打开每一个文件把前面14行非数据部分删除好导入excel,但是一直不行,我试验了一下,发现问题出在f.read()是空的,这是为什么呢?请大佬们过目!!!
这是源代码
import os

file_name = os.listdir('.')
file_name1 = [i for i in file_name if i[-1:-4:-1] == 'txt']
for each in file_name1:
    file_path = ".\"+each
    with open(file_path,'r',encoding = 'utf-8') as f:
        f.seek(0)
        a = f.read()
        print(a)
    x = [i for i in a]
    print(x)
    for each in range(14):
        x.pop(0)
    with open(file_path,'w',encoding = 'utf-8') as f:
        f.writelines(x)
下面是运行结果和py文件所处位置
1.png
1.png
救救孩子吧,被人畜无害的read给坑了太难受了,提前谢谢各位大佬!!!
最佳答案
2021-10-10 00:41:45
import os

files = os.listdir('.')
for file in files:
    if os.path.splitext(file)[1] == '.txt':
        with open(file, encoding='utf-8') as f:
            txt = f.readlines()[14:]
        with open(file, 'w', encoding='utf-8') as f:
            f.writelines(txt)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-10 00:41:45 | 显示全部楼层    本楼为最佳答案   
import os

files = os.listdir('.')
for file in files:
    if os.path.splitext(file)[1] == '.txt':
        with open(file, encoding='utf-8') as f:
            txt = f.readlines()[14:]
        with open(file, 'w', encoding='utf-8') as f:
            f.writelines(txt)

评分

参与人数 1鱼币 +5 贡献 +3 收起 理由
TGgan + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-10-10 00:52:47 | 显示全部楼层

大佬牛蛙,但是我能请问一下哪里出错了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-10-10 07:52:03 | 显示全部楼层
TGgan 发表于 2021-10-10 00:52
大佬牛蛙,但是我能请问一下哪里出错了吗


1.py脚本和待处理的文件在同文件夹,所以不用特别加上本文件夹“.\”,加上也不影响,但你得加个转义:
file_path = ".\\"+each # 不转义就读不到文件,所以是空。
2.当你用[i for i in a]处理后,文本内容的列表就出现了一种情况,\n单独变成了一行,x就变成了形如:
['1行内容', '\n', '2行内容', '\n', '3行内容', '\n' .... ]的样子,然后经过14次的x.pop(0)后,实际上只清除了7行的内容。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2021-10-10 10:34:09 | 显示全部楼层
suchocolate 发表于 2021-10-10 07:52
1.py脚本和待处理的文件在同文件夹,所以不用特别加上本文件夹“.\”,加上也不影响,但你得加个转义: ...

好的谢谢大哥
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 06:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表