2013-08-15 17 views
14

Jestem bardzo nowy w programowaniu (oczywiście) i naprawdę zaawansowanym sprzęcie komputerowym. Mam tylko podstawową wiedzę komputerową, więc zdecydowałem, że chcę się więcej nauczyć. W ten sposób uczę siebie (poprzez filmy i e-booki), jak programować.Jak wydrukować zawartość pliku .txt w języku Python?

W każdym razie pracuję nad kawałkiem kodu, który otworzy plik, wydrukuje zawartość na ekranie, zapyta, czy chcesz edytować/usunąć/zmienić zawartość, zrób to, a następnie ponownie wydrukuj wyniki i poproś o potwierdzenie, aby zapisać.

Utknąłem przy drukowaniu zawartości pliku. Nie wiem, jakiego polecenia użyć, aby to zrobić. Próbowałem pisać w kilku poleceń poprzednio, ale tutaj jest najnowszym Próbowałem i żaden kod nie jest kompletny:

from sys import argv 

script, filename = argv 
print "Who are you?" 
name = raw_input() 

print "What file are you looking for today?" 
file = raw_input() 

print (file) 

print "Ok then, here's the file you wanted." 

print "Would you like to delete the contents? Yes or No?" 

Próbuję napisać te kody praktyką jest to tak samo jak ja” jak dotąd się nauczyłem. Pracuję także nad Ubuntu 13.04 i Pythonem 2.7.4, jeśli to robi jakąkolwiek różnicę. Dzięki za pomoc do tej pory :)

Odpowiedz

15

otwarcie pliku do odczytu w Pythonie jest proste:

f = open('example.txt', 'r') 

aby wszystko w pliku, wystarczy użyć czytać()

file_contents = f.read() 

I aby wydrukować zawartość, po prostu zrobić:

print (file_contents) 

Nie zapomnij zamknąć plik, gdy skończysz .

f.close() 
+0

Powinieneś użyć klauzuli with, jak inni wspomnieli w poniższych rozwiązaniach, ponieważ menedżer kontekstu zajmie się zamknięcie pliku. – pcm

16

Wystarczy to zrobić:

>>> with open("path/to/file") as f: # The with keyword automatically closes the file when you are done 
...  print f.read() 

To będzie wydrukować plik w terminalu.

+1

To jest lepsze niż akceptowanych odpowiedź. – stephenmurdoch

+0

Ponieważ jest bardziej Pythoniczny ;-) – Mawg

+0

Użyj 'print (f.read())' w Pythonie 3.x – DontDivideByZero

1
with open("filename.txt", "w+") as file: 
    for line in file: 
    print line 

Ten with oświadczenie automatycznie otwiera i zamyka go dla Ciebie i możesz iteracyjne nad liniami pliku z prostym for pętli

1

To daje zawartość pliku oddzielone, line-by -line na liście:

with open('xyz.txt') as f_obj: 
    f_obj.readlines() 
1

do wejścia plik:

fin = open(filename) #filename should be a string type: e.g filename = 'file.txt' 

do wyjścia tego pliku możesz zrobić:

for element in fin: 
    print element 

jeśli elementy są ciągiem lepiej dodać to przed drukiem:

element = element.strip() 

strip() usunąć oznaczenia tak: /n

+0

po otwarciu pliku, możesz również wydrukować wszystko: 'print fin'' – SamuraiT

+0

Sformatowałem Twój post nieco - możesz również chcieć zmienić'/n' na '\ n' ... –

+0

oh, przepraszam. masz rację ! dziękuję za korektę! – SamuraiT

0

Jak czytać i drukować zawartość pliku txt

Załóżmy, że masz plik o nazwie plik.txt, który chcesz przeczytać w programie, a treść jest taka:

this is the content of the file 
with open you can read it and 
then with a loop you can print it 
on the screen. Using enconding='utf-8' 
you avoid some strange convertions of 
caracters. With strip(), you avoid printing 
an empty line between each (not empty) line 

można czytać tę zawartość: napisać następujący skrypt w notatniku:

with open("file.txt", "r", encoding="utf-8") as file: 
    for line in file: 
     print(line.strip()) 

zapisz jako plik readfile.py na przykład w tym samym folderze pliku txt.

Następnie uruchom go (Shift + kliknij prawym przyciskiem myszy i wybrać wiersz z menu kontekstowego) pisząc w wierszu:

C: \ przykłady> python readfile.py

Powinieneś dostać to. Zwróć uwagę na słowo, muszą być napisane tak, jak je widzisz i do wcięcia. Jest to ważne w python. Używaj zawsze tego samego wcięcia w każdym pliku (4 spacje są dobre).

wyjście

this is the content of the file 
with open you can read it and 
then with a loop you can print it 
on the screen. Using enconding='utf-8' 
you avoid some strange convertions of 
caracters. With strip(), you avoid printing 
an empty line between each (not empty) line 
Powiązane problemy