使用raw_input或argv读取文件

时间:2014-09-22 19:15:46

标签: python file

我是Learning Python the Hard Way。如何编辑此代码以使用名为'bobsDetails.txt'的文件?

from sys import argv
script, filename = argv
txt = open(filename)
print "Here's your file %r:" % filename
print txt.read()
print "Type the filename again:"
file_again = raw_input("> ")
txt_again = open(file_again)
print txt_again.read()

2 个答案:

答案 0 :(得分:0)

您想查看fileinput

假设我有这个文件:

$ cat bobsDetail.txt
File 'Bob's Detail'

我可以写一个简单的循环,它将1)处理stdin或2)打开文件名并处理内容:

#!/usr/bin/python

import fileinput
for line in fileinput.input():
    print line

现在制作可执行文件(Unix):

$ chmod +x fi.py

然后你可以按照任何方式处理它:

$ ./fi.py bobsDetail.txt
File 'Bob's Detail'

或者,

$ cat bobsDetail.txt | ./fi.py
File 'Bob's Detail'

然后你可以识别stdin vs file:

for line in fileinput.input():
    if fileinput.isfirstline():
        if fileinput.isstdin():
            print 'stdin'
        else:
            print fileinput.filename()    

    print line

来自档案

$ ./fi.py bobsDetail.txt
bobsDetail.txt
File 'Bob's Detail'

来自stdin:

$ cat bobsDetail.txt | ./fi.py
stdin
File 'Bob's Detail'

答案 1 :(得分:0)

首先,您需要先了解代码,然后才能将其文件名更改为 bobsDetail.txt 。如果您理解代码,您的问题将变得非常简单。 代码执行两次打开和读取文件内容的相同过程,首先使用 argv (参数变量),然后使用 raw_input()。也许,代码来自哪本书想要向您展示如何使用两种方式读取文件的内容 - argv raw_input()。 将代码粘贴到记事本++中并将其另存为 txtcode.py 。创建一个文本文件,输入:

  

我正在研究如何使用argv和raw_input

读取文件

将此文本文件另存为 OpenMe.txt ,并将其与python脚本 textcode.py 保存在同一文件夹中。该程序的作用是使用 textcode.py 脚本打开并阅读 OpenMe.txt 的内容。换句话说, textcode.py 中的脚本用于打开内容

  

我正在研究如何使用argv和raw_input

读取文件

OpenMe.txt 文件中找到。 运行程序打开powershell(我假设你使用的是Windows)。将目录更改为保存 textcode.py OpenMe.txt 文件的位置,然后将脚本运行为:

*python textcode.py OpenMe.txt*
What you need to type and what will be displayed is shown below:
*$ python ex15.py OpenMe.txt
Here's your file 'OpenMe.txt':
I am studying how to read files using argv and raw_input.
Type the filename again:
>  OpenMe.txt
I am studying how to read files using argv and raw_input*

了解了这一点后,您只需将名为 OpenMe.txt 的文件更改为首选文件 bobsDetail.txt 要显示您的文件必须包含一些内容,否则将会显得空洞,您可能认为该程序无效。 注意,您需要了解如何运行程序,并且我使用最简单,最有效的方法来学习如何编程 - 使用纯文本编辑器,如notepad ++和Powershell(或简称cmd)。