从文件中读取行

时间:2011-11-16 15:49:55

标签: python function text import

我正在编写一个程序来读取5个文件中的文本行,并将这5个文件中的文本编译成相应的列表。

但是我在让程序实际读取文本到列表方面遇到了很多麻烦,到目前为止我的代码是:

from random import random

from dice import choose

b = open ('E:\Videos, TV etc\Python\ca2\beginning.txt', 'r'). readlines ()
stripped_b = [item.strip() for item in b]

a = open ('E:\Videos, TV etc\Python\ca2\adjective.txt', 'r'). readlines ()
stripped_a = [item.strip() for item in a]

i = open ('E:\Videos, TV etc\Python\ca2\inflate.txt', 'r'). readlines ()
stripped_i = [item.strip() for item in i]

n = open ('E:\Videos, TV etc\Python\ca2\noun.txt', 'r'). readlines ()
stripped_n = [item.strip() for item in n]

phrase = []

turn = 0

def business_phrase(x):

    x = raw_input("\n\nInsert a number of business phrases to generate: ")
    while turn <= x:
        turn += 1
        for item in stripped_b:
            random_word = choose(item)
            phrase.append(random_word)
        for item in stripped_a:
            random_word = choose(item)
            phrase.append(random_word)
        for item in stripped_i:
            random_word = choose(item)
            phrase.append(random_word)
        for item in stripped_n:
            random_word = choose(item)
            phrase.append(random_word)
    print random_list

business_phrase(x)的

开头,形容词,膨胀和名词是文本文件,骰子是包含选择功能的python文件。

我运行此程序尝试生成一个短语,我收到以下错误消息:

IOError: [Errno 22] invalid mode ('r') or filename 'E:\\Videos, Tv etc\\Python\\ca2\\x08eginning.txt'

我不知道为什么它不会读取文本文件,因为它们与所述的目录相同(实际上与包含该函数的程序在同一目录中)。

有没有人有任何想法我完全被难倒。

3 个答案:

答案 0 :(得分:8)

处理Windows路径名时,请始终使用原始字符串文字:

r'E:\Videos, TV etc\Python\ca2\beginning.txt'

因为否则反斜杠可能会被解释为启动转义序列。

另外,请注意字符串末尾的反斜杠:r'C:\'不是您认为的那样。

答案 1 :(得分:3)

'\'用于Python字符串中的转义。 Here's a list of what you can do with them。你想逃避反斜杠实际上让它们作为后退读取,这意味着使用其中两个。这样做:

'E:\\Videos, TV etc\\Python\\ca2\\adjective.txt'

Raw strings like larsmans suggested也可以使用!

答案 2 :(得分:2)

不,你可能有一个带有^ H的文件名。逃避你的反斜杠。

'...\\...'