Python 2.7 面临for循环的问题

Python 2.7 面临for循环的问题,python-2.7,pycharm,Python 2.7,Pycharm,我试图让这个函数读取一个输入文件,并将输入文件中的行输出到一个新文件中。Pycharm一直说“item”没有被使用,或者在第一个for循环中被使用。我不明白为什么“物品”是个问题。它也不会创建新文件 input_list = 'persist_output_input_file_test.txt' def persist_output(input_list): input_file = open(input_list, 'rb') lines = input_file.read

我试图让这个函数读取一个输入文件,并将输入文件中的行输出到一个新文件中。Pycharm一直说“item”没有被使用,或者在第一个for循环中被使用。我不明白为什么“物品”是个问题。它也不会创建新文件

input_list = 'persist_output_input_file_test.txt'

def persist_output(input_list):
    input_file = open(input_list, 'rb')
    lines = input_file.readlines()
    input_file.close()
    for item in input_list:
        write_new_file = open('output_word.txt', 'wb')
        for item in lines:
            print>>input_list, item
        write_new_file.close()

你的程序有一些地方出了问题

  • input\u list
    似乎是一个表示文件名的字符串。当前,您正在使用输入列表中的项的
    对字符串中的字符进行迭代

  • 在第二个
    for
    循环中,对已经创建的变量
    项进行阴影处理。我建议你改一下


  • 在Python中,根据您使用的版本,将语句打印到屏幕的正确语法是
    print text
    (Python 2)或
    print(text)
    (Python 3)。与c++的
    std::cout不同,您的实现中存在一些问题。请参阅以下代码以了解您打算执行的操作:

    def persist_output(input_list):
        input_file = open(input_list, 'rb')
        lines = input_file.readlines()
        write_new_file = open('output_word.txt', 'wb')
        input_file.close()
        for item in lines:
            print item
            write_new_file.write(item);
    
    您早期实施的问题如下:

  • 在第一个循环中,您在输入文件名中进行迭代。如果要保留要读取的输入文件列表,则还必须打开它们。现在,循环遍历输入文件名中的字符

  • 您正在循环中打开输出文件。因此,只有最后一次写入操作才会成功。您必须将文件打开操作移到循环之外(参考:上面的代码片段)或将模式编辑为“append”。这可以通过以下方式完成:

    write_new_file=open('output_word.txt','a')

  • 您使用
    print
    命令的方式存在语法错误


  • 希望这能有所帮助。

    您认为您在
    中为输入列表中的项目使用了
    项的具体位置:
    正文?您在以下行中为该名称添加了另一个值:
    作为行中项目的阴影:
    ,在该行之前从未使用过
    item
    。请勿使用>>运算符。这是Python中的位移位运算符,而不是像C++中那样的提取操作符。它会尝试右键“代码”>打印< /代码>,但是你在右边说的字节很多,这是荒谬的,程序将正确地抛出一个错误。你使用的是什么版本的Python?PyCharm也告诉你,使用C++的流运算符<代码> > > /> >行吗?甚至C++中的 CUT,对于初学者来说,这并不是很有帮助,他们只是学习,还没有掌握<代码>打印< /Cord>语句。仅仅给他没有解释的编译代码是没有建设性的。虽然这似乎解决了OP的问题,但简单解释一下为什么它会这样做会很好。
    f=open('yourfilename','r').read()
    f1=f.split('\n')
    p=open('outputfilename','w')
    for i in range (len(f1)):
        p.write(str(f1[i])+'\n')
    p.close()