鱼C论坛

 找回密码
 立即注册
查看: 2913|回复: 13

python读取每行txt文件,并与固定数据对比

[复制链接]
发表于 2019-12-3 22:48:01 From FishC Mobile | 显示全部楼层 |阅读模式

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

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

x
例如txt,文件中
第一行数据: a b c d
第二行数据:k g m c
第三行数据:h z b d

通过循环判断 [z g k d] 是否在txt文件中有相同的数据。其中字符中间有空格。向老司机们求教。怎么写。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-12-3 22:58:43 From FishC Mobile | 显示全部楼层
Z g k d为何加中括号?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-3 23:08:20 From FishC Mobile | 显示全部楼层
XiaoPaiShen 发表于 2019-12-3 22:58
Z g k d为何加中括号?

列表
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-3 23:09:24 From FishC Mobile | 显示全部楼层
z g k d为一组数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-3 23:18:48 | 显示全部楼层
本帖最后由 XiaoPaiShen 于 2019-12-3 23:23 编辑
  1. list_target = ['z', 'g', 'k', 'd']
  2. target = ' '.join(list_target)
  3. # target = 'z g k d'
  4. with open('example.txt', 'r', encoding='utf-8') as f:
  5.     for line in f:
  6.         # print(line)
  7.         if line.strip() == target.strip():
  8.             print('the item "[z g k d]" exist in file')
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
hsj2001 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-4 01:39:35 | 显示全部楼层
本帖最后由 hrp 于 2019-12-4 01:44 编辑
  1. target, result = ['z', 'g', 'k', 'd'], []

  2. # 同目录下新建名为 1.txt的文本文件
  3. with open('1.txt', 'r', encoding='utf-8') as file:
  4.     file2 = file.read().split()
  5.     file.close()

  6. for i in file2:
  7.     if i in target:
  8.         result.append(i)
  9. result = list(set(result))

  10. print('文件中存在与列表相同的字符有:',  end='')
  11. for i in result:
  12.     print(i + ' ', end='')
复制代码

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
hsj2001 + 1 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-4 08:08:29 | 显示全部楼层
这里的['z', 'g', 'k', 'd'] 不能通过这样来判断?;例如['z g k d']也就是z g k d作为一个整体?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-4 08:09:13 | 显示全部楼层

file2 = file.read().split()  这里可以这样写?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-4 09:12:49 From FishC Mobile | 显示全部楼层
你把需求再说清楚一些,才好帮你
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-4 13:40:57 | 显示全部楼层
本帖最后由 hrp 于 2019-12-4 13:42 编辑
hsj2001 发表于 2019-12-4 08:09
file2 = file.read().split()  这里可以这样写?


不习惯这样也可分两步写嘛,而且你描述不清,看评论才知道你想要列表作为一个整体去对比,既然这样把列表中的字符组成字符串再去对比就好了,5楼的方法就是这个意思
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-4 15:11:20 From FishC Mobile | 显示全部楼层
hrp 发表于 2019-12-4 13:40
不习惯这样也可分两步写嘛,而且你描述不清,看评论才知道你想要列表作为一个整体去对比,既然这样把列 ...

谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-4 15:15:24 From FishC Mobile | 显示全部楼层
XiaoPaiShen 发表于 2019-12-4 09:12
你把需求再说清楚一些,才好帮你

谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-5 00:12:09 | 显示全部楼层
好迷,为啥强调循环?
[z g k d] 这几个字母中间的空格数量是不确定的吗,还是说可以有换行的?比如
  1. a b   c   d
  2. a  a   s  z
  3. g   kd
复制代码
这个算有相同的数据?
又或者说,这几个字母顺序是乱的,数量也不一定,中间还可能有别的字母?比如:
  1. a j  dz
  2. b  g   z
  3. k q
复制代码
算有相同数据?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-5 08:49:30 From FishC Mobile | 显示全部楼层
拿出真实数据
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-21 03:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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