1

我有一个文件,我试图在其上运行“sed”命令,但是在 Cygwin 3.5.1 上运行它时,我在 Python 3.10.1 中执行它时遇到了问题。

我正在处理的文件非常简单,如下所示:

(Distance competency)
 1. Approximately how long does it take for light from the Sun to reach Earth?

 1 8 minutes 
 2 10 minutes 
 3 6 minutes

我试图摆脱的每一行的开头都有一个空格,这是一个相对简单的 sed 任务和一个正则表达式搜索和替换:

sed -i 's/^[ \t]*//g' ./myFile

当我在 Cygwin 命令行上运行它时,我得到了我想要的,但是我在 Python 脚本中编写它,并且当我执行以下行时:

sedStatement = "sed -i 's/^[ \t]*//g' ./myFile"
os.system(sedStatement)

我得到以下输出:

(Distancecompetency) 
1.ApproximatelyhowlongdoesittakeforlightfromtheSuntoreachEarth?

18minutes
210minutes
36minutes

因此,根本没有识别插入符号“^”,而是看起来它被忽略了,并且所有空格都被替换为空,而我想要替换的是“行首”+“空格”与“空” ”。所以它看起来像这样......

(Distance competency)
1. Approximately how long does it take for light from the Sun to reach Earth?

1 8 minutes
2 10 minutes
3 6 minutes

有谁知道我做错了什么或者是什么原因造成的?我注意到我有一个“^M”作为行尾标记,但我不确定这是否是问题所在。我继续安装“dos2unix”并运行此命令,但它并没有摆脱“^M”行尾标记。

    unix2dos -iso -n myFile myFile2

任何帮助将不胜感激,我对 Python 还是比较陌生。

4

0 回答 0