python 如何用记事本打开不同扩展名的文件
How to open a file of different extension with notepad in python
我有一个 .fhx 文件,我可以用记事本正常打开它,但我想用 Python 打开它。我已经尝试 subprocess.popen 我上网了,但我总是收到错误。我还希望能够像普通文本文件一样读取此文件的内容,就像我们在 f=open("blah.txt", "r") 和 f.read() 中所做的那样。谁能指导我正确的方向?
import subprocess
filepath = "C:\Users\Ch\Desktop\FHX\fddd.fhx"
notePath = r'C:\Windows\System32\notepad.exe'
subprocess.Popen("%s %s" % (notePath, filepath))
尝试使用 shell=True
参数
subprocess.call((notePath, 文件路径), shell=真)
您应该传递一个参数列表:
import subprocess
filepath = r"C:\Users\Ch\Desktop\FHX\fddd.fhx"
notePath = r'C:\Windows\System32\notepad.exe'
subprocess.check_call([notePath, filepath])
如果您想阅读内容,只需使用 open
:
打开文件
with open(r"C:\Users\Ch\Desktop\FHX\fddd.fhx") as f:
for line in f:
print(line)
您还需要对路径使用原始字符串来转义文件路径名中的 f
,否则会出现错误。
In [1]: "C:\Users\Ch\Desktop\FHX\fddd.fhx"
Out[1]: 'C:\Users\Ch\Desktop\FHX\x0cddd.fhx'
In [2]: r"C:\Users\Ch\Desktop\FHX\fddd.fhx"
Out[2]: 'C:\Users\Ch\Desktop\FHX\fddd.fhx'
通过在文件打开命令中添加 encoding="utf16" 解决了我的问题。
count = 1
filename = r'C:\Users\Ch\Desktop\FHX-ESDC_CM02-2.fhx'
f = open(filename, "r", encoding="utf16") #Does not work without encoding
lines = f.read().splitlines()
for line in lines:
if "WIRE SOURCE" in line:
liner = line.split()
if any('SOURCE="INPUT' in s for s in liner):
print(str(count)+") ", "SERIAL INPUT = ", liner[2].replace("DESTINATION=", ""))
count += 1
现在我可以像 wanted.Thanks 大家一样获取数据了。
我有一个 .fhx 文件,我可以用记事本正常打开它,但我想用 Python 打开它。我已经尝试 subprocess.popen 我上网了,但我总是收到错误。我还希望能够像普通文本文件一样读取此文件的内容,就像我们在 f=open("blah.txt", "r") 和 f.read() 中所做的那样。谁能指导我正确的方向?
import subprocess
filepath = "C:\Users\Ch\Desktop\FHX\fddd.fhx"
notePath = r'C:\Windows\System32\notepad.exe'
subprocess.Popen("%s %s" % (notePath, filepath))
尝试使用 shell=True
参数
subprocess.call((notePath, 文件路径), shell=真)
您应该传递一个参数列表:
import subprocess
filepath = r"C:\Users\Ch\Desktop\FHX\fddd.fhx"
notePath = r'C:\Windows\System32\notepad.exe'
subprocess.check_call([notePath, filepath])
如果您想阅读内容,只需使用 open
:
with open(r"C:\Users\Ch\Desktop\FHX\fddd.fhx") as f:
for line in f:
print(line)
您还需要对路径使用原始字符串来转义文件路径名中的 f
,否则会出现错误。
In [1]: "C:\Users\Ch\Desktop\FHX\fddd.fhx"
Out[1]: 'C:\Users\Ch\Desktop\FHX\x0cddd.fhx'
In [2]: r"C:\Users\Ch\Desktop\FHX\fddd.fhx"
Out[2]: 'C:\Users\Ch\Desktop\FHX\fddd.fhx'
通过在文件打开命令中添加 encoding="utf16" 解决了我的问题。
count = 1
filename = r'C:\Users\Ch\Desktop\FHX-ESDC_CM02-2.fhx'
f = open(filename, "r", encoding="utf16") #Does not work without encoding
lines = f.read().splitlines()
for line in lines:
if "WIRE SOURCE" in line:
liner = line.split()
if any('SOURCE="INPUT' in s for s in liner):
print(str(count)+") ", "SERIAL INPUT = ", liner[2].replace("DESTINATION=", ""))
count += 1
现在我可以像 wanted.Thanks 大家一样获取数据了。