一个程序,它将使用python 3

时间:2018-01-31 02:21:46

标签: python python-2.7

我正在尝试在python中编写一个程序来修改另一个python程序。步骤如下:

  1. 我有一个程序(pyh.py),其中包含下面提到的行,输出如下
  2. 输出:

    Number of lines: 6 
    Number of characters: 65
    

    pyh.py的代码:

    import os
    import sys
    
    def pyh( filename ):
    
        if ( os.path.isfile( filename ) ):
    
            file = open( filename, 'r' )
            line_list = file.readlines()
            pyh_compute_size( line_list )
            file.close()
    
        else:
            print( "File " + filename + " does not exist." )
    
    
    def pyh_compute_size( line_list ):
    
        line_count = 0; char_count = 0
        for line in line_list:
    
            line_count += 1
            char_count += len( line )
    
        print( "Number of lines: " + str( line_count ) )
        print( "Number of characters: " + str( char_count ) )
    
    
    if __name__ == '__main__':
    
        pyh( "text_a.txt" )
    
    1. 我要做的是,我正在编写另一个名为“modifier.py”的python程序,该程序将打开“pyh.py”(在同一目录中)并读取该文件然后关闭它。 / LI>
    2. 然后打开相同的文件“pyh.py”进行书写。它将遍历行列表并在新文件(modifier.py)中写入第1行到第20行。之后,它从它的末尾删除换行符,并添加; print ("Additional Part")到最后,然后添加换行符。
    3. 之后,它将从21开始写入新文件(modifier.py)。
    4. 当我运行‘modifier.py’时,它会修改‘pyh.py’(适用于20和21之间的行)。修改‘pyh.py’后,它应显示以下输出。

      Additional Part
      Additional Part
      Number of lines: 6 
      Number of characters: 65
      

      我正在尝试执行第3步& 4但无法找到合适的方法。我是python的新手。如果有人帮助我解决它,那真的很棒。

      <{1}}的代码如下:

      modifier.py

1 个答案:

答案 0 :(得分:0)

你有两次pyh_new列出。你可以做的是调用第一个phy_new_read的名字,第二个叫phy_new_write。然后你想让phy_new_read返回line_list。 return line_list。然后你就可以做到:

if __name__ == '__main__':

    lines = pyh_new_read( "pyh.py" )

    #grab the specific lines that you want. See 
    # https://stackoverflow.com/questions/2081836/reading-specific-lines-only-python

    pyh_new_write( lines )

有关如何从文件中获取特定行的信息,请参阅以下问题 Reading specific lines only (Python)