簡體   English   中英

如何在Python中將文件中的每一行逐字讀取到列表中

[英]How to read each line from a file into list word by word in Python

我正在嘗試將行讀入列表,其中該行上的每個單詞都是不同的參數。 例如,當我的文本文件包含:

Word1, Word2, Some different words,separated by comma,but no space
Word3, Word4, Some different words,separated by comma,but no space

我想要這樣的清單:

['Word1', 'Word2', 'Some different words,separated by comma,but no space'],
['Word3', 'Word4', 'Some different words,separated by comma,but no space']

也許我什至可以得到這樣的清單:

['Word1', 'Word2', 'Some different words','separated by comma', 'but no space']

到目前為止,當文本文件中只有一行時,通過將每個單詞讀入列表,我已經設法完成了這項工作。

list_words = f.read().split()

它給我輸出:

['Word1', 'Word2', 'Some different words,separated by comma,but no space']

當我有多行時該怎么辦? 另外,如果以后要從兩個列表中打印出第一個參數,是否可以使用list_words [0],它將自動給我'Word1'和'Word3'嗎?

我希望這個解釋很清楚。

您可以使用以下列表理解

list_words = [i.split(',') for i in f]

如果要用逗號和空格re.split ,可以使用re.split

>>> with open('f.txt') as f:
...   print [re.split(', ',line) for line in f]
...
[['Word1', 'Word2', 'Some different words,separated by comma,but no space\n'],
 ['Word3', 'Word4', 'Some different words,separated by comma,but no space\n']]

如果要在每個逗號上分割,請使用str.split:

>>> with open('f.txt') as f:
...   print [line.split(',') for line in f]
...
[['Word1', ' Word2', ' Some different words', 'separated by comma', 'but no space\n'],
 ['Word3', ' Word4', ' Some different words', 'separated by comma', 'but no space\n']]

您可以使用strip擺脫\\n

>>> with open('f.txt') as f:
...   print [line.strip().split(',') for line in f]
...   # or print [re.split(', ',line.strip()) for line in f]
...
[['Word1', ' Word2', ' Some different words', 'separated by comma', 'but no space'],
 ['Word3', ' Word4', ' Some different words', 'separated by comma', 'but no space']]

實際上,您也可以使用line.strip().split(', ') 我只是忘記了您可以使用超過1個字符的分隔符...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM