WindowsXP'deyim. Bu herhangi bir süreci etkiliyor gibi görünüyor, ancak bunu göstermek için Python3.2 kullanacağım. Bir komut dosyası, 'filter.py':stdin, Windows ftp ve assoc mekanizmasını kullanan herhangi bir işlem için eksik.
import sys
for line in sys.stdin:
print(line)
şöyle Koşu:
echo hello | filter.py
böyle Aralar: Tabii
Traceback (most recent call last):
File "F:\Documents and Settings\jhartley\docs\projects\filtercwd\filter.py", line 3, in <module>
for line in sys.stdin:
TypeError: 'NoneType' object is not iterable
, bir baskı ekleyerek değerini keşfetmek için sys.stdin, (ve NoneType öğesinin yok) olduğunu bildirir.
Alternatif olarak şu şekilde çalışıyor:
echo hello | python filter.py
(python'un açık bir şekilde çağrılmasıyla) mükemmel bir şekilde çalışır. '
> assoc .py
.py=Python.File
> ftype Python.File
Python.File="F:\Python32\python.exe" "%1" %*
(bu aynı:
Benim .py dosyaları assoc ve FTYPE mekanizmasını (Windows belirli programları kullanarak yürütülecek belirli dosya adı uzantılarını ilişkilendiren yolu) kullanarak Python kullanarak yürütmek için bağladım python.exe 'bu, yolumun en ileri noktasındadır.
Güncelleme: Bu bir Python olayı değil. Ben filtre.sh, cygwin bash kullanarak çalıştırmak, aynı şey olur. Açıkça çalışan 'echo merhaba | bash filter.sh 'çalışıyor, ancak' echo merhaba | Assoc ve ftype mekanizması ile bash kullanarak filter.sh yürüten filter.sh ','/dev/stdin: Böyle bir dosya veya dizin yok 'ile başarısız olur.
Bu açık 'python'u tüm komut satırlarına eklemek zorunda mıyım? Ayrıca, neden kırıldığını merak ediyorum. Bu sadece benim makinemin kendine özgü bir özelliği mi yoksa başkaları da bunu görüyor mu?
Hey. Cevap için teşekkürler.Yanım da dahil olmak üzere benim PATH'mdaki tüm cygwin ikili dosyalarına sahibim. Belki de bir WindowsXP meselesi. Komik Daha önce fark etmedim. Bunu, Windows'un diğer tatları üzerinde deneyeceğim ve rapor vereceğim. –
Oh! Ve, ftype ve ruby ile .rb dosyalarını ilişkilendiren ayarlarınızı assoc göstermenizi isteyebilir miyim? Belki de benimkini delirtirim. yani, "assoc .rb" ve "ftype X" çıkışları, X'in assoc komutundan çıktısıdır. Teşekkürler! –
Bu bilgileri eklemek için cevapla güncellendi. Denemelerimi normal Microsoft Komut İsteminde yaptım. Hangi kabuğunu kullanıyorsun? –