2016-08-23 2 views
-3

Я учусь питон от прошлых недельизучение Python трудного путь ARGV и файл

from sys import argv 
script,filename = argv 
print "We're delete the file %r" %filename 
print "If you want to stop ctrl+c (^c)" 
print "Please hit enter to continue" 
raw_input(">_") 
print "Opening file..." 
filen = open(filename,'w') 
print "Truncating your file...." 
filen.truncate() 
print "now in your file %r" %filen 
print "Writing time write something to your file" 

line = raw_input("?") 
print "write in progress..." 
filen.write(line) 
filen.write("\n end of document\n") 
filen.close() 

Я хочу, чтобы просмотреть содержимое файла, но когда я использую print filename или print filen это показать имя и открыть файл на переменном filen

+1

Что с знаками доллара? –

ответ

0

вы можете прочитать данные с помощью filen.read() или filen.readline() или filen.readlines()

1) прочитать

fo = open(filename,read) 
fo.seek(0, 0) #seek is used to change the file position.This requires only for read method 
fo.read(10) #This reads 1st 10 characters 
fo.close() 

2) Readline

fo = open(filename,read) 
fo.readline() #This will read a single line from the file. You can add for loop to iterate all the data 
fo.close() 

3) readlines.

fo = open(filename,read) 
fo.readline() #read all the lines of a file in a list 
fo.close() 

Ниже приведен документ, который поможет вам лучше понять. https://docs.python.org/2/tutorial/inputoutput.html

+1

ссылки следует избегать только ... – Julien

+1

Если вы пишете сначала, вы захотите ['.seek (0)'] (https://docs.python.org/2/tutorial/inputoutput.html# method-of-file-objects) перед чтением – GP89

+0

Я добавил «$ print filen.read()« У меня IOError: Файл не открыт для чтения, поэтому я добавил «$ open (filen, 'r')», но на этот раз i get >> open (filen, 'r') ТипError: принуждение к Unicode: нужна строка или буфер, найденный файл – root

0

Если вы хотите распечатать содержимое файла, который вы открыли, просто используйте: print filen.read().

+0

Я добавил «$ print filen.read()« У меня IOError: Файл не открыт для чтения, поэтому я добавил "$ open (filen, 'r')", но на этот раз я получил >> open (filen, 'r') TypeError: принуждение к Unicode: нужна строка или буфер, найденный файл – root

+0

Для этого вам нужно сначала открыть файл : 'filen = open (имя файла, 'r')' и только затем использовать: 'print filen.read()' –

0

В самом простом:

from sys import argv 
script,filename = argv 
with open(filename) as f: 
    print f.readlines() 

который выгружает файлы содержимое или:

from sys import argv 
script,filename = argv 
with open(filename) as f: 
    lines=f.readlines() 
for line in lines: 
    print line 

, который печатает строки OUT 1 от 1

Смежные вопросы