转到文件并仅打印其中没有任何数字的单词

时间:2012-08-08 01:48:07

标签: python python-3.2

另外,我需要让程序显示单词中包含数字的单词

f = open("lolpa.txt", "r")

list1 = (f)
temp = []

for item in list1:
    if "1" "2" "3" "4" "5" "6" "7" "8" "9" "0"  in item:
        temp.append(item)
    else:
        print(item)

是我迄今为止所拥有的,但它出于某种原因显示了所有的词语。

编辑:lolpa.txt只是一个比较文件

编辑:如果这会改变任何东西,我使用的是python 3.2。

3 个答案:

答案 0 :(得分:3)

这样的事情会让你开始,问题不是很清楚。

with open("lolpa.txt") as f:
    for word in f.readline().split(): # assuming all words are on the first line
        digits = [c for c in word if c.isdigit()]
        if digits: # digits list is not empty
            print(' '.join(digits)) # shows digits with space in between
        else:
            print(word) # prints word normally

答案 1 :(得分:1)

以下内容将包含数字的整个单词放在一个文件中,而将数字放在另一个文件中。

f = open('lolpa.txt', 'r')
d = open('lolpa_with_digit.txt', 'w')
nd = open('lolpa_without_digit.txt', 'w')
rowlist = (f)
temp = []

for line in rowlist:
    words = line.split(' ')
    for word in words:
        word = word.strip()
        has_digit = False
        for char in word:
            if char.isdigit():
                has_digit = True
        if has_digit:
            d.write(word + '\n')
        else:
            nd.write(word +'\n')

答案 2 :(得分:0)

我不是正则表达专家,但这应该有用(当然你必须遍历每一行yadayada):

import re
prog = re.comile(r'\b[a-zA-Z]+\b')
result = prog.findall(your_line_here)

结果将是所有单词的列表