如何使用Python去除TXT文件每行的首个单词?
解决方法:用Python去除每行首个单词
你的现有代码没法实现需求,因为read().split()会把所有文本按空格拆成一个一维列表,a[1:]只是去掉了整个文本的第一个单词,会把所有行的内容混在一起,完全没法保留每行的结构。
正确的做法是逐行读取并处理,这样才能保证每行的独立性,具体代码如下:
# 打开文件逐行处理,自动管理文件关闭 with open("text.txt", "r", encoding="utf-8") as f: for line in f: # 先去掉行首尾的换行、空格,再分割成单词列表 words = line.strip().split() # 跳过空行,避免报错 if words: # 取第一个单词之后的所有内容,重新拼成一行 processed_line = " ".join(words[1:]) print(processed_line)
代码细节说明
- 用
with语句打开文件不用手动写close(),更安全省心。 strip()能处理行尾的换行符,避免输出时出现多余空行。split()会自动处理多个空格的情况,不管原行里是单个还是多个空格分隔单词都没问题。- 判断
if words是防止文件里有空行时出现索引错误。
运行这段代码后,输出就是每行单独显示的处理结果,直接复制就能粘贴到CSV文件里。
如果需要直接把结果保存到新文件,不用手动复制,可以用下面的代码:
# 同时打开原文件和输出文件 with open("text.txt", "r", encoding="utf-8") as f, open("processed_result.txt", "w", encoding="utf-8") as out_file: for line in f: words = line.strip().split() if words: processed_line = " ".join(words[1:]) out_file.write(processed_line + "\n")
执行后会生成一个processed_result.txt文件,里面就是处理好的内容。
内容的提问来源于stack exchange,提问作者PolenQuick
相关产品推荐
相关产品推荐

