将文件读入列表并剥离换行符。

12 浏览
0 Comments

将文件读入列表并剥离换行符。

此问题已在此处有答案

如何在没有换行符的情况下读取文件?

我在读取文件到列表时遇到了问题,当我这样做时,它只从整个文件中创建一个项目,而不是将每个元素读入其自己的字段中。 我使用 \\n 作为要剥离的字符,但无法正确工作。

temp = open('drugs')
drugs = [temp.read().strip("\n")]
temp.close

结果:

['40 Stimpak\n53 Mentats\n87 Buffout\n109 Rad-X\n125 Booze\n260 Jet Antidote\n311 Roentgen Rum\n424 Monument Chunk\n480 Bonus +1 Agility\n525 Hypo \n48 RadAway\n71 Fruit\n103 Iguana-on-a-stick\n110 Psycho\n144 Super Stimpak\n273 Healing Powder\n334 Poison\n469 Rot Gut\n481 Bonus +1 Intelligence \n49 Antidote\n81 Iguana-on-a-stick\n106 Nuka-Cola\n124 Beer\n259 Jet\n310 Gamma Gulp Beer\n378 Cookie\n473 Mutated Toe\n482 Bonus +1 Strength ']
drugs.strip('\n')
Traceback (most recent call last):
   File "seek", line 18, in 
     print drugs.strip('\n')
AttributeError: 'list' object has no attribute 'strip'

admin 更改状态以发布 2023年5月22日
0
0 Comments

如果读取整个文件内容到内存中没有问题,你还可以使用 str.splitlines()。\n\n

with open('your_file.txt') as f:
    lines = f.read().splitlines()

\n\nsplitlines()split(\'\\n\') 类似,但如果文件以换行符结尾,split(\'\\n\') 会在最后返回一个空字符串,而 splitlines() 则会按你期望的方式处理。

0
0 Comments

file.read()会读取整个文件的内容,除非你指定了最大长度。你可能想要的是.readlines()。但你可以用列表推导式更加简洁:

with open('drugs') as temp_file:
  drugs = [line.rstrip('\n') for line in temp_file]

with语句会关闭文件。

0