yjptx121 发表于 2020-4-7 23:28:14

关于文件操作的问题

encode = []
with open('test.txt', 'r') as f:
    my_list = f.read().split('=')
    for each_char in my_list:
      if each_char == 'Hello':
            encode.append('Hello')

print(encode)

代码如上,首先定义一个空列表,然后读取文件->循环->添加元素,但结果却是即使读取的文件中有‘Hello’这个元素,最后也不会被添加至encod列表中,这是什么原因,求指教!

txxcat 发表于 2020-4-7 23:37:11

本帖最后由 txxcat 于 2020-4-8 00:19 编辑

你用read读取了所有的内容用split分割,这个应该不是你的需求吧?一般情况是逐行读取,逐行处理(鉴于楼下说的\n的情况,加入了一个分片[:5]就可以了):
encode = []
with open('test.txt', 'r') as f:
    for line in f:
      my_list = line.split('=')
      for each_char in my_list:
            if each_char[:5] == 'Hello':
                encode.append('Hello')

print(encode)

ba21 发表于 2020-4-7 23:50:05

有没有要根据你的文件来。
文件读取后的 \n 换行符你都没有处理。怎么可能相同。
Hello\n 不会== Hello

yjptx121 发表于 2020-4-8 22:38:06

ba21 发表于 2020-4-7 23:50
有没有要根据你的文件来。
文件读取后的 \n 换行符你都没有处理。怎么可能相同。
Hello\n 不会== Hello

能否更改一下代码,感激不尽

ba21 发表于 2020-4-9 14:17:18

yjptx121 发表于 2020-4-8 22:38
能否更改一下代码,感激不尽

>>> a="abc"
>>> a=a[:-1]
>>> a
'ab'
这就不完事了。

yjptx121 发表于 2020-4-9 22:36:22

ba21 发表于 2020-4-9 14:17
>>> a="abc"
>>> a=a[:-1]
>>> a


谢谢,我再仔细想想

ba21 发表于 2020-4-9 23:15:49

yjptx121 发表于 2020-4-9 22:36
谢谢,我再仔细想想

脑子这么不好使?少打一个字,少说一句都理解不了?多动动脑
>>> a="abc\n"
>>> a=a[:-1]
>>> a
'abc'

yjptx121 发表于 2020-4-12 20:42:18

ba21 发表于 2020-4-9 23:15
脑子这么不好使?少打一个字,少说一句都理解不了?多动动脑
>>> a="abc\n"
>>> a=a[:-1]


年级大了,学的慢,如果你不乐意,就别回复,谢谢
页: [1]
查看完整版本: 关于文件操作的问题