我正在使用Power Shell和NotePad ++學習Python的難題。Python .readline()
我已經到了我正在使用的部分.readline()
,我注意到我的函數中第一個參數的第一個字符被刪除或被空格覆蓋。我知道已經有一個問題似乎回答了這個問題(Python .readline()),但由於我對Python和Powershell完全陌生,所以我不知道如何擺弄和更改其中任何一個設置。
我寫了要執行的腳本(稱爲new 1.py
)是這樣的:
from sys import argv
script, input_filename = argv
def foo (arg1,arg2,arg3):
print arg1,arg2,arg3.readline()
def bar (arg1, arg2, arg3):
print arg2,arg1,arg3.readline()
open_input_file=open(input_filename)
foo ("Text1",1,open_input_file)
foo ("Text2",2,open_input_file)
bar ("Text3",3,open_input_file)
bar ("Text4","4",open_input_file)
與包含文本test1.py
文件:
Line 1
Line 2
Line 3
Line 4
Line 5
Line 6
我的輸出是如下:
$ python "new 1.py" test1.py
ext1 1 ☐ Line 1
ext2 2 Line 2
Text3 Line 3
Text4 Line 4
我期望的輸出是:
$ python "new 1.py" test1.py
Text1 1 Line 1
Text2 2 Line 2
3 Text3 Line 3
4 Text4 Line 4
有人可以請解釋如何讓.readline()
讀取行而不刪除或覆蓋第一個字符(有空格)嗎?爲什麼在輸出中的首都L
前面有一個白盒子?
嘗試'.readline()。strip()'去除可能影響輸出的任何討厭的空白字符。另外,請閱讀[風格指南](http://www.python.org/dev/peps/pep-0008/)並相應地設置代碼的格式(例如,更多合理的函數/參數名稱將會非常有幫助)。 – jonrsharpe
使用'repr(bl.readline())'打印該行的調試表示。文件中的其他字節由控制檯或終端解釋爲控制字符。 –
你可能想要考慮更好的變量名稱;兩個字母變量很難跟蹤。 –