Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将两个文件的Get内容追加到Powershell中的新文件中会在字符之间插入空格_Python_Powershell - Fatal编程技术网

Python 将两个文件的Get内容追加到Powershell中的新文件中会在字符之间插入空格

Python 将两个文件的Get内容追加到Powershell中的新文件中会在字符之间插入空格,python,powershell,Python,Powershell,我正在Powershell中编写以下内容: Get-Content "Path/to/InputFile1/InputFile1.txt" -totalcount 250| Out-File -FilePath "Path/to/OutputFile/OutputFile.txt" -Append Get-Content "Path/to/InputFile2/InputFile2.txt" -totalcount 250| Out-File -FilePath "Path/to/Output

我正在Powershell中编写以下内容:

Get-Content "Path/to/InputFile1/InputFile1.txt" -totalcount 250| Out-File -FilePath "Path/to/OutputFile/OutputFile.txt" -Append

Get-Content "Path/to/InputFile2/InputFile2.txt" -totalcount 250| Out-File -FilePath "Path/to/OutputFile/OutputFile.txt" -Append
我检查了
OutputFile.txt
的大小,发现它正好是我预期大小的两倍。我使用以下命令检查了Powershell,以确保其一切正常:

Get-Content "Path/to/OutputFile/OutputFile.txt" -totalcount 1 
f = open("Path/to/OutputFile/OutputFile.txt","rb")
f = f.read()
print f[0:20]
没有什么看起来不寻常的。然后我进入Python,并使用以下代码检查了一个代码段:

Get-Content "Path/to/OutputFile/OutputFile.txt" -totalcount 1 
f = open("Path/to/OutputFile/OutputFile.txt","rb")
f = f.read()
print f[0:20]

并注意到一个不寻常的输出。虽然初始文件的片段看起来像
00102xxxx、5197609、Je
,但输出文件的片段看起来像以下内容:
■0 0 1 0 2 x x x
。这种奇怪的行为背后有什么解释吗?如果不是因为输出文件正好是我期望的两倍,那么它似乎是Python特有的。我不确定交替空格是如何出现的。任何帮助都将不胜感激。

确实有一个解释。您有编码问题。找出Powershell使用的编码,因为它是Windows,所以我假设UCS-2在python中:

f = open("Path/to/OutputFile/OutputFile.txt","rb")
f = f.read().decode('utf16')
print f[0:20].encode('utf-8')

希望这有帮助

确实有一个解释。您有编码问题。找出Powershell使用的编码,因为它是Windows,所以我假设UCS-2在python中:

f = open("Path/to/OutputFile/OutputFile.txt","rb")
f = f.read().decode('utf16')
print f[0:20].encode('utf-8')

希望这有帮助

原因是输入文本编码为ASCII(每个字符8位),而Out-File cmdlet将文件输出为Unicode(每个字符16位,即大小的两倍)。输出的字符数相同,只是编码不同

如果要将其更改回ASCII(正如您可能期望的那样),请设置
-编码“ASCII”
参数,使文本如下所示:

Get-Content "Path/to/InputFile1/InputFile1.txt" -totalcount 250| Out-File -Encoding "ASCII" -FilePath "Path/to/OutputFile/OutputFile.txt" -Append

Get-Content "Path/to/InputFile2/InputFile2.txt" -totalcount 250| Out-File -Encoding "ASCII" -FilePath "Path/to/OutputFile/OutputFile.txt" -Append

原因是输入文本编码为ASCII(每个字符8位),Out-File cmdlet输出文件为Unicode(每个字符16位,即大小的两倍)。输出的字符数相同,只是编码不同

如果要将其更改回ASCII(正如您可能期望的那样),请设置
-编码“ASCII”
参数,使文本如下所示:

Get-Content "Path/to/InputFile1/InputFile1.txt" -totalcount 250| Out-File -Encoding "ASCII" -FilePath "Path/to/OutputFile/OutputFile.txt" -Append

Get-Content "Path/to/InputFile2/InputFile2.txt" -totalcount 250| Out-File -Encoding "ASCII" -FilePath "Path/to/OutputFile/OutputFile.txt" -Append

正是我需要的。非常感谢。正是我需要的。非常感谢。