我在運行在Ubuntu盒子上的Python腳本中使用import fileinput
。Python識別 r作爲行分隔符
我正在命令行上運行腳本,沿着python myscript.py firstinputfile.txt secondinputfile.txt
和myscript.py
的內容行,我使用for line in fileinput.input()
來遍歷行。我遇到的問題是,firstinputfile.txt
和secondinputfile.txt
都使用Macintosh(\r
)行結尾,並且fileinput.input()
似乎沒有將\r
識別爲行分隔符。
有什麼辦法可以強制fileinput
將\r
識別爲行分隔符嗎?
我認爲預處理firstinputfile.txt
和secondinputfile.txt
使用\n
線的結局,但我猶豫的原因有兩個:1)我真的不希望發出額外的文件來管理和ii)我仍然希望輸入fileinput
來自文件參數(不是管道命令後的stdin
),所以我可以使用fileinput.filename()
和fileinput.filelineno()
。
有什麼建議嗎?
你可以在文件中用'\ r \ n'代替'\ r' ..在閱讀 – avasal
@avasal之前我可以,但我寧願不要有副作用。理想情況下,我希望能夠在接收它們的狀態下將文件作爲輸入,並輸出我需要的內容,而不會創建任何中間狀態/突變輸入源。 –
然後可能如果該文件不是太大,你可以讀取所有的內容作爲一個字符串和拆分使用'\ r'創建一個列表,然後遍歷它 – avasal