簡體   English   中英

使用python,如何將windows上的txt文件轉換為unix類型?

[英]with python, how can i convert a txt file on windows to a unix type?

很多時候,在加載到 linux 環境之前,我忘記將文檔類型(?)更改為 unix,而不是 windows。

當我從那里運行文件時,我得到:

filename.sh: line 4: $'\r': command not found

有沒有辦法從 python 更改文本文件?

理想情況下,通過命令行上的子進程或不需要我打開文件並添加 EOL 的東西?

否則,有沒有辦法將其構建為子流程的回報?

因為如果我做$? 運行格式不正確的文本后,我得到0

編輯:

發生了一些奇怪的事情——我最初是在 linux 中測試它並得到那個“錯誤”。 當我在同一個文件上運行plink時,它實際上像 unix 一樣讀取它並正確運行它......

是的,使用opennewline參數。 默認情況下, open在使用文本模式時使用通用換行符,並將所有新行類型(\r、\n、\r\n)轉換為 \n。 讀入整個文件,然后用指定的newline再次寫出:

示例(覆蓋原始文件!):

import sys

with open(sys.argv[1]) as f:  # default is 'rt' read text mode.
    data = f.read()

with open(sys.argv[1], 'w', newline='\n') as f: # write with Unix new lines.
    f.write(data)

此外,如果沒有指定newline ,它將使用平台默認值,因此在 Windows 上它將寫入 \r\n 結尾,而在 Unix 上,如果您不使用該參數,它將寫入 \n 結尾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM